From 51d4b69ff1acb37cd9e87dee5c36a04f25b7a09d Mon Sep 17 00:00:00 2001 From: Bryce Kwon Date: Sat, 31 Oct 2026 15:27:57 -0700 Subject: 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. --- source/ui-shared.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'source/ui-shared.h') diff --git a/source/ui-shared.h b/source/ui-shared.h index 32337d9..cd937a3 100644 --- a/source/ui-shared.h +++ b/source/ui-shared.h @@ -158,7 +158,7 @@ extern int cgit_get_old_oid(const char *old_rev, const struct commit *commit, st /* * Start rev's walk, or print the error page and return non-zero when git * cannot. A failed setup leaves the walk holding freed commits, so the caller - * must not read from it then. + * must then neither read from it nor hand it to release_revisions. */ extern int cgit_prepare_walk(struct rev_info *rev); -- cgit