Skip to content

Commit a4bf7dd

Browse files
committed
sequencer: fix memory leak if update_squash_messages() failed
In sequencer.c:update_squash_messages, `repo_logmsg_reencode` returns either an allocated reencode string or commit buffer if no encode is needed. To free `repo_logmsg_reencode` result, `repo_unuse_commit_buffer` should be used. However, when encountering the error("unknown command..."), the absence of `repo_unuse_commit_buffer` results in a memory leak. I think we should add a `repo_unuse_commit_buffer` before return. Signed-off-by: Lidong Yan <[email protected]>
1 parent 6f84262 commit a4bf7dd

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

sequencer.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2138,8 +2138,10 @@ static int update_squash_messages(struct repository *r,
21382138
strbuf_addstr(&buf, "\n\n");
21392139
strbuf_add_commented_lines(&buf, body, strlen(body),
21402140
comment_line_str);
2141-
} else
2141+
} else {
2142+
repo_unuse_commit_buffer(r, commit, message);
21422143
return error(_("unknown command: %d"), command);
2144+
}
21432145
repo_unuse_commit_buffer(r, commit, message);
21442146

21452147
if (!res)

0 commit comments

Comments
 (0)