git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] gitweb: Remove "uninitialized value" Perl warning

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 12, 2016, 21:20 UTC
Message-ID
<CAPc5daVYHKehuDV7hFB9npw9qYt24jLTrnQr1LxDPdHQjWpkYQ@mail.gmail.com>
In-Reply-To
<xmqq4meitsce.fsf@gitster.mtv.corp.google.com>
On Tue, Jan 12, 2016 at 1:12 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 14 quoted lines
> Øyvind A. Holm <sunny@sunbase.org> writes:
>
>> 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_COMMIT
>
> Thanks.  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.
Show 18 quoted lines
>> Signed-off-by: Øyvind A. Holm <sunny@sunbase.org>
>> ---
>>  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");
>
Previous: Øyvind A. Holm
Message 2 of 2 in “gitweb: Remove "uninitialized value" Perl warning”
  1. gitweb: Remove "uninitialized value" Perl warningØyvind A. Holm, Jan 12, 2016
  2. Junio C HamanoJan 12, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.