From 9b7a6a99807862778706c455d6ba361a3b1f8f7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Mon, 4 Apr 2011 16:17:39 +0200 Subject: [PATCH] config: check for EOF before newline MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If a line ends at EOF there is no need to check for the newline character and doing so will cause us to read memory beyond the allocatd memory as we check for the Windows-style new-line, which is two bytes long. Signed-off-by: Carlos Martín Nieto --- src/config.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/config.c b/src/config.c index 0052c659c..93f15fb08 100644 --- a/src/config.c +++ b/src/config.c @@ -537,12 +537,13 @@ static char *cfg_readline(git_config *cfg) line_src = cfg->reader.read_ptr; line_end = strchr(line_src, '\n'); - while (is_linebreak(line_end)) - line_end = strchr(line_end + 1, '\n'); - /* no newline at EOF */ if (line_end == NULL) line_end = strchr(line_src, 0); + else + while (is_linebreak(line_end)) + line_end = strchr(line_end + 1, '\n'); + while (line_src < line_end && isspace(*line_src)) line_src++;