add_to_index(): free unused cache-entry
authorJunio C Hamano <gitster@pobox.com>
Mon, 23 Mar 2015 17:58:00 +0000 (10:58 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 23 Mar 2015 18:12:59 +0000 (11:12 -0700)
We allocate a cache-entry pretty early in the function and then
decide either not to do anything when we are pretending to add, or
add it and then get an error (another possibility is obviously to
succeed).

When pretending or failing to add, we forgot to free the
cache-entry.

Noticed during a discussion on Stefan's patch to change the coding
style without fixing the issue ;-)

Signed-off-by: Junio C Hamano <gitster@pobox.com>
read-cache.c
index 60abec6055342d7a8c317b02bccaa881eb9e4540..5b922fd583317335b75a428de84420f2f7f4eb3c 100644 (file)
@@ -707,9 +707,11 @@ int add_to_index(struct index_state *istate, const char *path, struct stat *st,
                    ce->ce_mode == alias->ce_mode);
 
        if (pretend)
                    ce->ce_mode == alias->ce_mode);
 
        if (pretend)
-               ;
-       else if (add_index_entry(istate, ce, add_option))
-               return error("unable to add %s to index",path);
+               free(ce);
+       else if (add_index_entry(istate, ce, add_option)) {
+               free(ce);
+               return error("unable to add %s to index", path);
+       }
        if (verbose && !was_same)
                printf("add '%s'\n", path);
        return 0;
        if (verbose && !was_same)
                printf("add '%s'\n", path);
        return 0;