]> git.ipfire.org Git - thirdparty/git.git/commit
builtin/repack.c: avoid leaking child arguments
authorTaylor Blau <me@ttaylorr.com>
Thu, 28 Oct 2021 20:25:48 +0000 (16:25 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 28 Oct 2021 22:31:51 +0000 (15:31 -0700)
commite6432e0f1f183595b265b76ca765c612e705c65a
tree143f39d8cf8ca086885e8ea03493ca66c8c40c0a
parent9e39acc94ad42362243811a359c2972049e8c880
builtin/repack.c: avoid leaking child arguments

`git repack` invokes a handful of child processes: one to write the
actual pack, and optionally ones to repack promisor objects and update
the MIDX.

Most of these are freed automatically by calling `start_command()` (which
invokes it on error) and `finish_command()` which calls it
automatically.

But repack_promisor_objects() can initialize a child_process, populate
its array of arguments, and then return from the function before even
calling start_command().

Make sure that the prepared list of arguments is freed by calling
child_process_clear() ourselves to avoid leaking memory along this path.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/repack.c