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 <[email protected]>
> ---
>  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 = "&amp;";
>       }
> -     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
_______________________________________________
CGit mailing list
[email protected]
http://lists.zx2c4.com/mailman/listinfo/cgit

Reply via email to