* called by both the sender and the receiver. */
void read_sum_head(int f, struct sum_struct *sum)
{
+ int32 max_blength = protocol_version < 30 ? OLD_MAX_BLOCK_SIZE : MAX_BLOCK_SIZE;
sum->count = read_int(f);
if (sum->count < 0) {
rprintf(FERROR, "Invalid checksum count %ld [%s]\n",
exit_cleanup(RERR_PROTOCOL);
}
sum->blength = read_int(f);
- if (sum->blength < 0 || sum->blength > MAX_BLOCK_SIZE) {
+ if (sum->blength < 0 || sum->blength > max_blength) {
rprintf(FERROR, "Invalid block length %ld [%s]\n",
(long)sum->blength, who_am_i());
exit_cleanup(RERR_PROTOCOL);