[PATCH] fetch: plug two leaks on error exit in store_updated_refs
- From
René Scharfe <rene.scharfe@lsrfire.ath.cx>
- Date
- Oct 7, 2011, 06:13 UTC
- Message-ID
- <4E8E98A7.8010008@lsrfire.ath.cx>
- In-Reply-To
- <20111007014136.GB10839@localhost>
Close FETCH_HEAD and release the string url even if we have to leave the function store_updated_refs() early.
Reported-by: Chris Wilson <cwilson@vigilantsw.com> Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> --- builtin/fetch.c | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/builtin/fetch.c b/builtin/fetch.c index 7a4e41c..79db796 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -379,8 +379,12 @@ static int store_updated_refs(const char *raw_url, const char *remote_name, url = xstrdup("foreign"); rm = ref_map; - if (check_everything_connected(iterate_ref_map, 0, &rm)) - return error(_("%s did not send all necessary objects\n"), url); + if (check_everything_connected(iterate_ref_map, 0, &rm)) { + error(_("%s did not send all necessary objects\n"), url); + free(url); + fclose(fp); + return -1; + } for (rm = ref_map; rm; rm = rm->next) { struct ref *ref = NULL;
-- 1.7.7