diff options
| author | Taylor Blau <me@ttaylorr.com> | 2026-03-27 16:06:43 -0400 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2026-03-27 13:40:39 -0700 |
| commit | 81e29064371c4b4599b171ac71e73d1e21475a63 (patch) | |
| tree | ad51eeb4c3905b69fb92c8a232247ba12de0c0bf /builtin/pack-objects.c | |
| parent | 7ff1e8dc1e1680510c96e69965b3fa81372c5037 (diff) | |
| download | git-81e29064371c4b4599b171ac71e73d1e21475a63.tar.xz | |
pack-objects: plug leak in `read_stdin_packs()`
The `read_stdin_packs()` function added originally via 339bce27f4f
(builtin/pack-objects.c: add '--stdin-packs' option, 2021-02-22)
declares a `rev_info` struct but neglects to call `release_revisions()`
on it before returning, creating the potential for a leak.
The related change in 97ec43247c0 (pack-objects: declare 'rev_info' for
'--stdin-packs' earlier, 2025-06-23) carried forward this oversight and
did not address it.
Ensure that we call `release_revisions()` appropriately to prevent a
potential leak from this function. Note that in practice our `rev_info`
here does not have a present leak, hence t5331 passes cleanly before
this commit, even when built with SANITIZE=leak.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/pack-objects.c')
| -rw-r--r-- | builtin/pack-objects.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c index cd013c0b68..9a89bc5c4c 100644 --- a/builtin/pack-objects.c +++ b/builtin/pack-objects.c @@ -3968,6 +3968,8 @@ static void read_stdin_packs(enum stdin_packs_mode mode, int rev_list_unpacked) show_object_pack_hint, &mode); + release_revisions(&revs); + trace2_data_intmax("pack-objects", the_repository, "stdin_packs_found", stdin_packs_found_nr); trace2_data_intmax("pack-objects", the_repository, "stdin_packs_hints", |
