]> git.ipfire.org Git - thirdparty/git.git/commitdiff
builtin/maintenance: fix leaking config string
authorPatrick Steinhardt <ps@pks.im>
Thu, 26 Sep 2024 11:46:59 +0000 (13:46 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 27 Sep 2024 15:25:37 +0000 (08:25 -0700)
When parsing the maintenance strategy from config we allocate a config
string, but do not free it after parsing it. Plug this leak by instead
using `git_config_get_string_tmp()`, which does not allocate any memory.

This leak is exposed by t7900, but plugging it alone does not make the
test suite pass.

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

index 7dac97140549b46f5a95c66c2844bbe62f86f8e0..3acfa367ad13745d9bdcc415b4d2b02b5fc46415 100644 (file)
@@ -1476,9 +1476,9 @@ static int maintenance_run_tasks(struct maintenance_run_opts *opts,
 
 static void initialize_maintenance_strategy(void)
 {
-       char *config_str;
+       const char *config_str;
 
-       if (git_config_get_string("maintenance.strategy", &config_str))
+       if (git_config_get_string_tmp("maintenance.strategy", &config_str))
                return;
 
        if (!strcasecmp(config_str, "incremental")) {