]> git.ipfire.org Git - thirdparty/git.git/commitdiff
fetch-pack: fix memory leaks on fetch negotiation
authorPatrick Steinhardt <ps@pks.im>
Thu, 5 Sep 2024 10:08:40 +0000 (12:08 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 5 Sep 2024 15:49:10 +0000 (08:49 -0700)
We leak both the `nt_object_array` and `negotiator` structures in
`negotiate_using_fetch()`. Plug both of these leaks.

These leaks were exposed by t5516, but fixing them is not sufficient to
make the whole test suite leak free.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
fetch-pack.c

index 58b4581ad80b15a9feda3f3dfcbd3548723cd113..0ed82feda14b030da45c851575b62d3e2e56a1ec 100644 (file)
@@ -2227,7 +2227,10 @@ void negotiate_using_fetch(const struct oid_array *negotiation_tips,
        trace2_region_leave("fetch-pack", "negotiate_using_fetch", the_repository);
        trace2_data_intmax("negotiate_using_fetch", the_repository,
                           "total_rounds", negotiation_round);
+
        clear_common_flag(acked_commits);
+       object_array_clear(&nt_object_array);
+       negotiator.release(&negotiator);
        strbuf_release(&req_buf);
 }