[PATCH 03/15] read-cache: free cache entry in add_to_index in case of early return
- From
Stefan Beller <sbeller@google.com>
- Date
- Mar 21, 2015, 00:28 UTC
- Message-ID
- <1426897692-18322-4-git-send-email-sbeller@google.com>
- In-Reply-To
- <1426897692-18322-1-git-send-email-sbeller@google.com>
This frees `ce` would be leaking in the error path.
Additionally a free is moved towards the return. This helps code readability as we often have this pattern of freeing resources just before return/exit and not in between the code.
Signed-off-by: Stefan Beller <sbeller@google.com> --- read-cache.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/read-cache.c b/read-cache.c index 769897e..935f91a 100644 --- a/read-cache.c +++ b/read-cache.c @@ -681,15 +681,18 @@ int add_to_index(struct index_state *istate, const char *path, struct stat *st, alias = index_file_exists(istate, ce->name, ce_namelen(ce), ignore_case); if (alias && !ce_stage(alias) && !ie_match_stat(istate, alias, st, ce_option)) { /* Nothing changed, really */ - free(ce); if (!S_ISGITLINK(alias->ce_mode)) ce_mark_uptodate(alias); alias->ce_flags |= CE_ADDED; + + free(ce); return 0; } if (!intent_only) { - if (index_path(ce->sha1, path, st, HASH_WRITE_OBJECT)) + if (index_path(ce->sha1, path, st, HASH_WRITE_OBJECT)) { + free(ce); return error("unable to index file %s", path); + } } else set_object_name_for_intent_to_add_entry(ce);
-- 2.3.0.81.gc37f363