Code

apply: fix access to an uninitialized mode variable, found by valgrind
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Wed, 4 Feb 2009 01:50:15 +0000 (02:50 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 4 Feb 2009 06:04:31 +0000 (22:04 -0800)
When 'tpatch' was initialized successfully, st_mode was already taken
from the previous diff.  We should not try to override it with data
from an lstat() that was never called.

This is a companion patch to 7a07841(git-apply: handle a patch that
touches the same path more than once better).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-apply.c

index 50b623e54c003fb5bbe183568d13f496c3c41c25..7a1ff041f15cd4e6ce2a5b1d1e3cb668f2f54f5e 100644 (file)
@@ -2445,7 +2445,7 @@ static int check_preimage(struct patch *patch, struct cache_entry **ce, struct s
                return error("%s: %s", old_name, strerror(errno));
        }
 
-       if (!cached)
+       if (!cached && !tpatch)
                st_mode = ce_mode_from_stat(*ce, st->st_mode);
 
        if (patch->is_new < 0)