Browse Source

fix diff-delta bad memory access

It cannot be assumed that the given buffer will never be moved when
shrinking the allocated memory size with realloc().  So let's ignore
that optimization for now.

This patch makes Electric Fence happy on Linux.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Acked-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
maint
Nicolas Pitre 19 years ago committed by Junio C Hamano
parent
commit
639ca54972
  1. 5
      diff-delta.c

5
diff-delta.c

@ -199,7 +199,6 @@ struct delta_index * create_delta_index(const void *buf, unsigned long bufsize) @@ -199,7 +199,6 @@ struct delta_index * create_delta_index(const void *buf, unsigned long bufsize)
entry->next = hash[i];
hash[i] = entry++;
hash_count[i]++;
entries--;
}
}

@ -230,10 +229,6 @@ struct delta_index * create_delta_index(const void *buf, unsigned long bufsize) @@ -230,10 +229,6 @@ struct delta_index * create_delta_index(const void *buf, unsigned long bufsize)
}
free(hash_count);

/* If we didn't use all hash entries, free the unused memory. */
if (entries)
index = realloc(index, memsize - entries * sizeof(*entry));

return index;
}


Loading…
Cancel
Save