Skip to content

Commit a613832

Browse files
committed
patch_parse: fix segfault due to line containing static contents
With commit dedf70a (patch_parse: do not depend on parsed buffer's lifetime, 2019-07-05), all lines of the patch are allocated with `strdup` to make lifetime of the parsed patch independent of the buffer that is currently being parsed. In patch b089328 (patch_parse: ensure valid patch output with EOFNL, 2019-07-11), we introduced another code location where we add lines to the parsed patch. But as that one was implemented via a separate pull request, it wasn't converted to use `strdup`, as well. As a consequence, we generate a segfault when trying to deallocate the potentially static buffer that's now in some of the lines. Use `git__strdup` to fix the issue.
1 parent e07dbc9 commit a613832

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

src/patch_parse.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -653,7 +653,7 @@ static int parse_hunk_body(
653653

654654
memset(line, 0x0, sizeof(git_diff_line));
655655

656-
line->content = ctx->parse_ctx.line;
656+
line->content = git__strdup(ctx->parse_ctx.line);
657657
line->content_len = ctx->parse_ctx.line_len;
658658
line->content_offset = ctx->parse_ctx.content_len - ctx->parse_ctx.remain_len;
659659
line->origin = eof_for_origin(last_origin);

0 commit comments

Comments
 (0)