]> git.ipfire.org Git - thirdparty/git.git/commitdiff
builtin/multi-pack-index.c: don't leak concatenated options
authorTaylor Blau <me@ttaylorr.com>
Tue, 26 Oct 2021 21:01:18 +0000 (17:01 -0400)
committerJunio C Hamano <gitster@pobox.com>
Thu, 28 Oct 2021 22:32:14 +0000 (15:32 -0700)
The `multi-pack-index` builtin dynamically allocates an array of
command-line option for each of its separate modes by calling
add_common_options() to concatante the common options with sub-command
specific ones.

Because this operation allocates a new array, we have to be careful to
remember to free it. We already do this in the repack and write
sub-commands, but verify and expire don't. Rectify this by calling
FREE_AND_NULL as the other modes do.

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

index 075d15d706246a7e4f6a4ec3faecaebce220399f..4480ba398277d4edc67e60eff47686d579de53c8 100644 (file)
@@ -167,6 +167,8 @@ static int cmd_multi_pack_index_verify(int argc, const char **argv)
                usage_with_options(builtin_multi_pack_index_verify_usage,
                                   options);
 
+       FREE_AND_NULL(options);
+
        return verify_midx_file(the_repository, opts.object_dir, opts.flags);
 }
 
@@ -191,6 +193,8 @@ static int cmd_multi_pack_index_expire(int argc, const char **argv)
                usage_with_options(builtin_multi_pack_index_expire_usage,
                                   options);
 
+       FREE_AND_NULL(options);
+
        return expire_midx_packs(the_repository, opts.object_dir, opts.flags);
 }