X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/923fa978088f4c044eec528d9472962d9c9d13c3..496d9272c1b3094e4a1c31273af5401bac1720c0:/match.c diff --git a/match.c b/match.c index 38e8aa01..613eaec8 100644 --- a/match.c +++ b/match.c @@ -178,7 +178,7 @@ static void hash_search(int f,struct sum_struct *s, for (; jcount && targets[j].t == t; j++) { int i = targets[j].i; - if (sum != s->sums[i].sum1) continue; + if (sum != s->sums[i].sum1 || s->sums[i].len > (len-offset)) continue; if (verbose > 3) rprintf(FINFO,"potential match at %d target=%d %d sum=%08x\n", @@ -199,7 +199,7 @@ static void hash_search(int f,struct sum_struct *s, /* we've found a match, but now check to see if last_i can hint at a better match */ for (j++; jcount && targets[j].t == t; j++) { - int i2 = targets[j].t; + int i2 = targets[j].i; if (i2 == last_i + 1) { if (sum != s->sums[i2].sum1) break; if (memcmp(sum2,s->sums[i2].sum2,csum_length) != 0) break;