[PATCH v2 3/4] help.c: plug leaks with(out) help.autocorrect
- From
Tay Ray Chuan <rctay89@gmail.com>
- Date
- Jul 25, 2012, 16:16 UTC
- Message-ID
- <1343232982-10540-4-git-send-email-rctay89@gmail.com>
- In-Reply-To
- <1343232982-10540-3-git-send-email-rctay89@gmail.com>
When help.autocorrect is set, in an attempt to retain the memory to the string name in main_cmds, we unfortunately leaked the struct cmdname that held it. Fix this by creating a copy of the string name.
When help.autocorrect is not set, we exit()'d without free'ing it like we do when the config is set; fix this.
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> ---
Changed in v2: plug leak when help.autocorrect is not set.
--- help.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/help.c b/help.c index dfb2e9d..ee261f4 100644 --- a/help.c +++ b/help.c @@ -362,8 +362,7 @@ const char *help_unknown_cmd(const char *cmd) ; /* still counting */ } if (autocorrect && n == 1 && SIMILAR_ENOUGH(best_similarity)) { - const char *assumed = main_cmds.names[0]->name; - main_cmds.names[0] = NULL; + const char *assumed = xstrdup(main_cmds.names[0]->name); clean_cmdnames(&main_cmds); fprintf_ln(stderr, _("WARNING: You called a Git command named '%s', " @@ -390,6 +389,7 @@ const char *help_unknown_cmd(const char *cmd) fprintf(stderr, "\t%s\n", main_cmds.names[i]->name); } + clean_cmdnames(&main_cmds); exit(1); }
-- 1.7.11.1.116.g8228a23