diff options
author | Taylor Blau <me@ttaylorr.com> | 2021-10-26 21:01:23 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-10-28 22:32:14 (GMT) |
commit | 022815114a8a57188bc0e8fd622e10d5e22604dc (patch) | |
tree | f40ef7d04ffc33ef7508c5028c6749fe534802e1 /pack-bitmap.c | |
parent | 60980aed786487e9113f0cb2907dfc75a77d363c (diff) | |
download | git-022815114a8a57188bc0e8fd622e10d5e22604dc.zip git-022815114a8a57188bc0e8fd622e10d5e22604dc.tar.gz git-022815114a8a57188bc0e8fd622e10d5e22604dc.tar.bz2 |
pack-bitmap.c: don't leak type-level bitmaps
test_bitmap_walk() is used to implement `git rev-list --test-bitmap`,
which compares the result of the on-disk bitmaps with ones generated
on-the-fly during a revision walk.
In fa95666a40 (pack-bitmap.c: harden 'test_bitmap_walk()' to check type
bitmaps, 2021-08-24), we hardened those tests to also check the four
special type-level bitmaps, but never freed those bitmaps. We should
have, since each required an allocation when we EWAH-decompressed them.
Free those, plugging that leak, and also free the base (the scratch-pad
bitmap), too.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'pack-bitmap.c')
-rw-r--r-- | pack-bitmap.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/pack-bitmap.c b/pack-bitmap.c index 3f60342..3d81425 100644 --- a/pack-bitmap.c +++ b/pack-bitmap.c @@ -1726,6 +1726,12 @@ void test_bitmap_walk(struct rev_info *revs) else die("mismatch in bitmap results"); + bitmap_free(result); + bitmap_free(tdata.base); + bitmap_free(tdata.commits); + bitmap_free(tdata.trees); + bitmap_free(tdata.blobs); + bitmap_free(tdata.tags); free_bitmap_index(bitmap_git); } |