Diff options
authorBryce Kwon <bryce@brycekwon.com>
committerBryce Kwon <bryce@brycekwon.com>
commit
parent
tree
download
Release only finished walks, never cgit's mailmap
release_revisions frees revs->mailmap, and the log page points it at the static list cgit_mailmap returns, so every log of a repository with enable-mailmap aborted. A walk whose setup failed holds commits that are already freed, so releasing it could free them twice.
Diffstat (limited to 'source/ui-log.c')
-rw-r--r--source/ui-log.c4
1 file changed, 3 insertions, 1 deletion
diff --git a/source/ui-log.c b/source/ui-log.c
index ef52951..5b3a88a 100644
--- a/source/ui-log.c
+++ b/source/ui-log.c
@@ -612,8 +612,10 @@ void cgit_print_log(const char *tip, int ofs, int cnt, const char *grep, const c
html("</tbody>\n");
}
-out:
+ // The mailmap is cgit's own and outlives the walk.
+ rev.mailmap = NULL;
release_revisions(&rev);
+out:
if (must_free_tip)
free((char *)tip);
strvec_clear(&rev_argv);