aboutsummaryrefslogtreecommitdiffstats
path: root/cgit.c
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2026-03-10 21:26:55 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2026-03-10 22:19:00 +0100
commit0d8e5fbc31e1082063bfb5155c35b7869721152b (patch)
treed13d25a2ef93af13deaaf285dbcd26bbb5a5a1c6 /cgit.c
parentui-log: allow link following to be disabled per-repo (diff)
downloadcgit-0d8e5fbc31e10.tar.xz
cgit-0d8e5fbc31e10.zip
cgit: override die routine globallyHEADmaster
We don't get any return value from compile_grep_patterns calling compile_regexp_failed, causing the default die routine to print to stderr and then for cgit to exit ungracefully. Instead override the default die routine to show a normal error page. Perhaps compile_grep_patterns ought to change upstream to return an error. But this commit here will handle future issues as well, so perhaps not a bad idea to do anyway. Link: https://lists.zx2c4.com/pipermail/cgit/2026-March/004982.html Link: https://lists.zx2c4.com/pipermail/cgit/2026-March/004983.html Reported-by: Adrian C. <anrxc@sysphere.org> Reported-by: Aiden Woodruff <aiden@aidenw.net> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'cgit.c')
-rw-r--r--cgit.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/cgit.c b/cgit.c
index c91897a..c4dc94c 100644
--- a/cgit.c
+++ b/cgit.c
@@ -1058,6 +1058,12 @@ static int calc_ttl(void)
return ctx.cfg.cache_repo_ttl;
}
+static NORETURN void cgit_die_routine(const char *msg, va_list params)
+{
+ cgit_vprint_error_page(400, "Bad request", msg, params);
+ exit(0);
+}
+
int cmd_main(int argc, const char **argv)
{
const char *path;
@@ -1065,6 +1071,7 @@ int cmd_main(int argc, const char **argv)
cgit_init_filters();
atexit(cgit_cleanup_filters);
+ set_die_routine(cgit_die_routine);
prepare_context();
cgit_repolist.length = 0;