From mboxrd@z Thu Jan 1 00:00:00 1970 From: john at keeping.me.uk (John Keeping) Date: Wed, 6 Jul 2016 09:44:27 +0100 Subject: [PATCH] ui-shared: fix segfault when defbranch is NULL In-Reply-To: <20160706070801.GA13129@dcvr.yhbt.net> References: <20160706070801.GA13129@dcvr.yhbt.net> Message-ID: <20160706084427.7ilbr62zsct7ufhw@john.keeping.me.uk> On Wed, Jul 06, 2016 at 07:08:01AM +0000, Eric Wong wrote: > Not sure if there's a better fix for this. defbranch is > NULL here on my setup when a crawler hit an invalid URL, > causing strcmp to segfault. > > Signed-off-by: Eric Wong > --- > ui-shared.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/ui-shared.c b/ui-shared.c > index b1a6c46..e39d004 100644 > --- a/ui-shared.c > +++ b/ui-shared.c > @@ -253,7 +253,7 @@ static char *repolink(const char *title, const char *class, const char *page, > } > delim = "&"; > } > - if (head && strcmp(head, ctx.repo->defbranch)) { > + if (head && ctx.repo->defbranch && strcmp(head, ctx.repo->defbranch)) { This looks sensible to me. We guarantee that defbranch is non-null in prepare_repo_cmd() but this function can be called from the repository list via (at least) cgit_summary_link(), so it may be null here. All of the other use sites are already protected by null checks except the one reached via find_default_branch() but that is called immediately after we have made sure that defbranch is non-null. > html(delim); > html("h="); > html_url_arg(head); > -- > EW