summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-03-23 10:58:00 -0700
committerJunio C Hamano <gitster@pobox.com>2015-03-23 11:12:59 -0700
commit067178ed8a7822e6bc88ad606b707fc33658e6fc (patch)
tree26106b0bfde7d0a310d68f6d7089f332877310a3
parent5d0b9bf86d98b690e443b266e95add7fab334f14 (diff)
downloadgit-067178ed8a7822e6bc88ad606b707fc33658e6fc.tar.gz
add_to_index(): free unused cache-entry
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>
-rw-r--r--read-cache.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/read-cache.c b/read-cache.c
index 60abec6055..5b922fd583 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -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)
- ;
- 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;