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@xxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html