Re: [PATCH] gitweb: Remove "uninitialized value" Perl warning
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:07:43
On Tue, Jan 12, 2016 at 1:12 PM, Junio C Hamano [off-list ref] wrote:
Øyvind A. Holm [off-list ref] writes:quoted
git_object(): Check if $type is defined before chomping it. This removes a Perl warning in the server error log: gitweb.cgi: Use of uninitialized value $type in scalar chomp at [...]/gitweb.cgi line 7579., referer: [...] when trying to access a non-existing commit, for example: http://HOST/?p=PROJECT.git;a=commit;h=NON_EXISTING_COMMITThanks. The analysis and description of the issue and the fix both make sense to me.
With this, you would then do
print $cgi->redirect(-uri => href(action=>$type, ...);
but then href treats $param{action} that is an undef as if it does not
even exist,
so the effect will not be felt during the invocation of this request.
I am not sure what happens to a request that lacks action (mapped to 'a'
parameter) that results from this redirect, though. Would that eventually
hit dispatch where if (!defined $action) would cause it to say "Object does
not exist"?
In any case, this looks like a strict improvement. Thanks again.
quoted
Signed-off-by: Øyvind A. Holm <redacted> --- gitweb/gitweb.perl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 7a5b23a..05d7910 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl@@ -7576,7 +7576,7 @@ sub git_object { git_cmd(), 'cat-file', '-t', $object_id) . ' 2> /dev/null' or die_error(404, "Object does not exist"); $type = <$fd>; - chomp $type; + defined $type && chomp $type; close $fd or die_error(404, "Object does not exist");