From 649409b7bccdcd6d6e5273b2b7340cea05f77736 Mon Sep 17 00:00:00 2001 From: Jeff King Date: Thu, 24 Jul 2014 00:42:39 -0400 Subject: [PATCH] fix memory leak parsing core.commentchar When we see the core.commentchar config option, we extract the string with git_config_string, which does two things: 1. It complains via config_error_nonbool if there is no string value. 2. It makes a copy of the string. Since we immediately parse the string into its single-character value, we only care about (1). And in fact (2) is a detriment, as it means we leak the copy. Instead, let's just check the pointer value ourselves, and parse directly from the const string we already have. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- config.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config.c b/config.c index a30cb5c07d..40799a1dba 100644 --- a/config.c +++ b/config.c @@ -824,11 +824,11 @@ static int git_default_core_config(const char *var, const char *value) return git_config_string(&editor_program, var, value); if (!strcmp(var, "core.commentchar")) { - const char *comment; - int ret = git_config_string(&comment, var, value); - if (!ret) - comment_line_char = comment[0]; - return ret; + if (!value) + return config_error_nonbool(var); + else + comment_line_char = value[0]; + return 0; } if (!strcmp(var, "core.askpass")) -- 2.11.4.GIT