Fix segfault in diff-delta.c when FLEX_ARRAY is 1
aka don't do pointer arithmetics on structs that have a FLEX_ARRAY member, or you'll end up believing your array is 1 cell off its real address. Signed-off-by: Pierre Habouzit <madcoder@debian.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
bd8ff616c9
commit
f9c5a80cdf
@@ -264,7 +264,7 @@ struct delta_index * create_delta_index(const void *buf, unsigned long bufsize)
|
|||||||
index->src_size = bufsize;
|
index->src_size = bufsize;
|
||||||
index->hash_mask = hmask;
|
index->hash_mask = hmask;
|
||||||
|
|
||||||
mem = index + 1;
|
mem = index->hash;
|
||||||
packed_hash = mem;
|
packed_hash = mem;
|
||||||
mem = packed_hash + (hsize+1);
|
mem = packed_hash + (hsize+1);
|
||||||
packed_entry = mem;
|
packed_entry = mem;
|
||||||
|
|||||||
Reference in New Issue
Block a user