From: Junio C Hamano Date: Thu, 15 Dec 2011 22:02:19 GMT Subject: Re: [PATCH] Gitweb: Avoid warnings when a repo does not have a valid HEAD Message-ID: <7v62hhmr2s.fsf@alter.siamese.dyndns.org> In-Reply-To: <1323982737-19065-1-git-send-email-jratt0@gmail.com> Joe Ratterman writes: > It is possible that the HEAD reference does not point to an existing > branch. When viewing such a repository in gitweb, a message like this > one was sent to the error log: > > gitweb.cgi: Use of uninitialized value in string eq at /usr/src/git/gitweb/gitweb.cgi line 5115. > > Signed-off-by: Joe Ratterman > --- > gitweb/gitweb.perl | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl > index 4f0c3bd..5af06d6 100755 > --- a/gitweb/gitweb.perl > +++ b/gitweb/gitweb.perl > @@ -5440,7 +5440,7 @@ sub git_heads_body { > for (my $i = $from; $i <= $to; $i++) { > my $entry = $headlist->[$i]; > my %ref = %$entry; > - my $curr = $ref{'id'} eq $head; > + my $curr = $head ? ($ref{'id'} eq $head) : 0; Makes one wonder if $head could be '0', but I presume this is about the case where (!defined $head) holds true. Also makes one wonder if a similar issue exists on the $ref{"id"} side. I suspect that won't be true unless you have a very screwed-up repository, but in that case a repository with a HEAD that points at an unborn branch _and_ have other refs that do point at existing commit is already screwed-up, so if we want to be extremely pedantic then perhaps ... my $curr = ((defined $head && exists $ref{"id"} && defined $ref{"id"}) ? ($ref{"id"} eq $head) : 0);