Author: John Keeping <john@keeping.me.uk>
parsing: clear query path before starting By specifying the "url" query parameter multiple times it is possible to end up with ctx.qry.vpath set while ctx.repo is null, which triggers an invalid code path from cgit_print_pageheader() while printing path crumbs, resulting in a null dereference. The previous patch fixed this segfault, but it makes no sense for us to clear ctx.repo while leaving ctx.qry.path set to the previous value, so let's just clear it here so that the last "url" parameter given takes full effect rather than partially overriding the effect of the previous value. Signed-off-by: John Keeping <john@keeping.me.uk>
parsing.c | 2 +-
diff --git a/parsing.c b/parsing.c index 9dacb16619a1e8202e517342b3ab06db2f4bf53b..b8d7f10de6a619ae598a2a28eecb36bf2e5ec7af 100644 --- a/parsing.c +++ b/parsing.c @@ -21,6 +21,7 @@ char *c, *cmd, *p; struct cgit_repo *repo; ctx.repo = NULL; + ctx.qry.page = NULL; if (!url || url[0] == '\0') return; @@ -53,7 +54,6 @@ ctx.qry.path = trim_end(p + 1, '/'); } if (cmd[1]) ctx.qry.page = xstrdup(cmd + 1); - return; } }