From 2c5c008b462fd5d2e32318077aaa3bc4e67c84fd Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay.sievers@suse.de>
Date: Tue, 17 Jan 2006 03:50:20 +0100
Subject: [PATCH] fix: Use of uninitialized value

The subroutine did not check the case where HEAD does not verify.

Patch from Junio C Hamano <junkio@cox.net>
---
 gitweb.cgi | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/gitweb.cgi b/gitweb.cgi
index 986d7dacd60..cb033733b9e 100755
--- a/gitweb.cgi
+++ b/gitweb.cgi
@@ -404,12 +404,13 @@ sub git_read_head {
 	if (open my $fd, "-|", "$gitbin/git-rev-parse", "--verify", "HEAD") {
 		my $head = <$fd>;
 		close $fd;
-		chomp $head;
-		if ($head =~ m/^[0-9a-fA-F]{40}$/) {
-			$retval = $head;
+		if (defined $head && $head =~ /^([0-9a-fA-F]{40})$/) {
+			$retval = $1;
 		}
 	}
-	$ENV{'GIT_DIR'} = $oENV;
+	if (defined $oENV) {
+		$ENV{'GIT_DIR'} = $oENV;
+	}
 	return $retval;
 }