Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
496d927
)
moved the block length mismatch code to another part of the loop.
author
Andrew Tridgell
<tridge@samba.org>
Tue, 5 Jan 1999 06:43:59 +0000
(06:43 +0000)
committer
Andrew Tridgell
<tridge@samba.org>
Tue, 5 Jan 1999 06:43:59 +0000
(06:43 +0000)
match.c
patch
|
blob
|
blame
|
history
diff --git
a/match.c
b/match.c
index
613eaec
..
7f3212c
100644
(file)
--- a/
match.c
+++ b/
match.c
@@
-176,16
+176,19
@@
static void hash_search(int f,struct sum_struct *s,
sum = (s1 & 0xffff) | (s2 << 16);
tag_hits++;
for (; j<s->count && targets[j].t == t; j++) {
sum = (s1 & 0xffff) | (s2 << 16);
tag_hits++;
for (; j<s->count && targets[j].t == t; j++) {
- int i = targets[j].i;
+ int
l,
i = targets[j].i;
- if (sum != s->sums[i].sum1
|| s->sums[i].len > (len-offset)
) continue;
+ if (sum != s->sums[i].sum1) continue;
+ /* also make sure the two blocks are the same length */
+ l = MIN(s->n,len-offset);
+ if (l != s->sums[i].len) continue;
+
if (verbose > 3)
rprintf(FINFO,"potential match at %d target=%d %d sum=%08x\n",
(int)offset,j,i,sum);
if (!done_csum2) {
if (verbose > 3)
rprintf(FINFO,"potential match at %d target=%d %d sum=%08x\n",
(int)offset,j,i,sum);
if (!done_csum2) {
- int l = MIN(s->n,len-offset);
map = (schar *)map_ptr(buf,offset,l);
get_checksum2((char *)map,l,sum2);
done_csum2 = 1;
map = (schar *)map_ptr(buf,offset,l);
get_checksum2((char *)map,l,sum2);
done_csum2 = 1;