From 4cc7342e952b75d5f77427cb83b413e9e195ed28 Mon Sep 17 00:00:00 2001 From: Sascha Cunz Date: Sun, 18 Nov 2012 09:07:35 +0100 Subject: [PATCH] Indexer: Avoid a possible double-deletion in error case --- src/indexer.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/indexer.c b/src/indexer.c index 4a4ed325a..e9f235a72 100644 --- a/src/indexer.c +++ b/src/indexer.c @@ -249,8 +249,10 @@ static int hash_and_save(git_indexer_stream *idx, git_rawobj *obj, git_off_t ent git_oid_cpy(&pentry->sha1, &oid); pentry->offset = entry_start; - if (git_vector_insert(&idx->pack->cache, pentry) < 0) + if (git_vector_insert(&idx->pack->cache, pentry) < 0) { + git__free(pentry); goto on_error; + } git_oid_cpy(&entry->oid, &oid); entry->crc = crc32(0L, Z_NULL, 0); @@ -275,7 +277,6 @@ static int hash_and_save(git_indexer_stream *idx, git_rawobj *obj, git_off_t ent on_error: git__free(entry); - git__free(pentry); git__free(obj->data); return -1; }