]> git.ipfire.org Git - thirdparty/git.git/commitdiff
builtin/help: fix leaking `html_path` when reading config multiple times
authorPatrick Steinhardt <ps@pks.im>
Thu, 26 Sep 2024 11:46:03 +0000 (13:46 +0200)
committerJunio C Hamano <gitster@pobox.com>
Fri, 27 Sep 2024 15:25:34 +0000 (08:25 -0700)
The `html_path` variable gets populated via `git_help_config()`, which
puts an allocated string into it if its value has been configured. We do
not clear the old value though, which causes a memory leak in case the
config exists multiple times.

Plug this leak. The leak is exposed by t0012, but plugging it alone is
not sufficient to make the test suite pass.

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

index 282ea5721fadb31e6c916eab12605706b56333a0..2c249cbca4ab46226d0316021029cfe54374273d 100644 (file)
@@ -52,7 +52,7 @@ static enum help_action {
        HELP_ACTION_CONFIG_SECTIONS_FOR_COMPLETION,
 } cmd_mode;
 
-static const char *html_path;
+static char *html_path;
 static int verbose = 1;
 static enum help_format help_format = HELP_FORMAT_NONE;
 static int exclude_guides;
@@ -409,6 +409,7 @@ static int git_help_config(const char *var, const char *value,
        if (!strcmp(var, "help.htmlpath")) {
                if (!value)
                        return config_error_nonbool(var);
+               free(html_path);
                html_path = xstrdup(value);
                return 0;
        }