repack: free geometry struct
commitcb888bb6991bb10bddedf9ddc9651ec25da6137d
authorJeff King <peff@peff.net>
Tue, 8 Aug 2023 18:50:23 +0000 (8 14:50 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 8 Aug 2023 23:49:10 +0000 (8 16:49 -0700)
tree794f68709c8c8d5fef4116f7a98e0b11191807bd
parenta82fb66fed250e16d3010c75404503bea3f0ab61
repack: free geometry struct

When the program is ending, we call clear_pack_geometry() to free any
resources in the pack_geometry struct. But the struct itself is
allocated on the heap, and leak-checkers will complain about the
resulting small leak.

This one was marked by Coverity as a "new" leak, though it has existed
since 0fabafd0b9 (builtin/repack.c: add '--geometric' option,
2021-02-22). This might be because recent unrelated changes in the file
confused it about what is new and what is not. But regardless, it is
worth addressing.

We can fix it easily by free-ing the struct. We'll convert our "clear"
function to "free", since the allocation happens in the matching init()
function (though since there is only one call to each, and the struct is
local to this file, it's mostly academic).

Another option would be to put the struct on the stack rather than the
heap. However, this gets tricky, as we check the pointer against NULL in
several places to decide whether we're in geometric mode.

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