summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Derrick Stolee <dstolee@microsoft.com>2018-10-08 08:17:03 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2018-10-09 18:04:15 +0900
commit0ce4ff942125eabed3df694dc27922bec8177624 (patch)
tree6bfd68ded410da6ed750fd571d99604cc035a421
parentSync with 2.19.1 (diff)
downloadtgif-0ce4ff942125eabed3df694dc27922bec8177624.tar.xz
midx: fix broken free() in close_midx()
When closing a multi-pack-index, we intend to close each pack-file and free the struct packed_git that represents it. However, this line was previously freeing the array of pointers, not the pointer itself. This leads to a double-free issue. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--midx.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/midx.c b/midx.c
index f3e8dbc108..999717b96f 100644
--- a/midx.c
+++ b/midx.c
@@ -190,7 +190,7 @@ static void close_midx(struct multi_pack_index *m)
for (i = 0; i < m->num_packs; i++) {
if (m->packs[i]) {
close_pack(m->packs[i]);
- free(m->packs);
+ free(m->packs[i]);
}
}
FREE_AND_NULL(m->packs);