aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-05-23 15:34:07 -0700
committerJunio C Hamano <gitster@pobox.com>2025-05-23 15:34:07 -0700
commitabb674a09545370f2969a7ec40bd3e2b458589b8 (patch)
treeb0efd34652b31d04d69d69bf4370c34a3dc43b74
parente9312881ec59a0ab2a000990f01bbfbc60b276b2 (diff)
parent7291c2be6a276f8b3693fb7d8dd763cee14c2485 (diff)
downloadgit-abb674a09545370f2969a7ec40bd3e2b458589b8.tar.gz
Merge branch 'ly/pack-bitmap-load-leakfix'
Leakfix. * ly/pack-bitmap-load-leakfix: pack-bitmap: fix memory leak if `load_bitmap_entries_v1` failed
-rw-r--r--pack-bitmap.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/pack-bitmap.c b/pack-bitmap.c
index b9f1d86604..ac6d62b980 100644
--- a/pack-bitmap.c
+++ b/pack-bitmap.c
@@ -388,10 +388,6 @@ static int load_bitmap_entries_v1(struct bitmap_index *index)
return error(_("corrupt ewah bitmap: commit index %u out of range"),
(unsigned)commit_idx_pos);
- bitmap = read_bitmap_1(index);
- if (!bitmap)
- return -1;
-
if (xor_offset > MAX_XOR_OFFSET || xor_offset > i)
return error(_("corrupted bitmap pack index"));
@@ -402,6 +398,10 @@ static int load_bitmap_entries_v1(struct bitmap_index *index)
return error(_("invalid XOR offset in bitmap pack index"));
}
+ bitmap = read_bitmap_1(index);
+ if (!bitmap)
+ return -1;
+
recent_bitmaps[i % MAX_XOR_OFFSET] = store_bitmap(
index, bitmap, &oid, xor_bitmap, flags);
}