Code

name-hash.c: always initialize dir_next pointer
authorJohannes Sixt <j6t@kdbg.org>
Tue, 1 Nov 2011 22:21:06 +0000 (23:21 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 1 Nov 2011 22:29:18 +0000 (15:29 -0700)
Test t2021-checkout-overwrite.sh reveals a segfault in 'git add' on a
case-insensitive file system when git is compiled with XMALLOC_POISON
defined. The reason is that 2548183b (fix phantom untracked files when
core.ignorecase is set) added a new member dir_next to struct cache_entry,
but forgot to initialize it in all cases.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
name-hash.c

index 225dd769954fa0fcb6e70da58b2ce5ed88e9451e..d8d25c23e99dddd9bd0bf83d73f2ae136d7307b5 100644 (file)
@@ -74,7 +74,7 @@ static void hash_index_entry(struct index_state *istate, struct cache_entry *ce)
        if (ce->ce_flags & CE_HASHED)
                return;
        ce->ce_flags |= CE_HASHED;
-       ce->next = NULL;
+       ce->next = ce->dir_next = NULL;
        hash = hash_name(ce->name, ce_namelen(ce));
        pos = insert_hash(hash, ce, &istate->name_hash);
        if (pos) {