Code

unpack-trees: FLEX_ARRAY fix
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 18 Dec 2007 06:12:03 +0000 (22:12 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 18 Dec 2007 09:10:24 +0000 (01:10 -0800)
commitf2fdd10ab76feb0e141fc3f9cf4e5efd87f7fcdf
tree3a50b7992f03995b41eecde0341d817bb4c29041
parentf9c5a80cdf2265f2df7712fad9f1fb7ef68b4768
unpack-trees: FLEX_ARRAY fix

In unpack-trees.c (line 593), we do

..
if (same(old, merge)) {
*merge = *old;
} else {
..

and that "merge" is a cache_entry pointer. If we have a non-zero
FLEX_ARRAY size, it will cause us to copy the first few bytes of the
name too.

That is technically wrong even for FLEX_ARRAY being 1, but you'll never
notice, since the filenames should always be the same with the current
code.  But if we do the same thing for a rename, we'd be screwed.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
unpack-trees.c