Subject: Re: [PATCH v2 3/3] gitweb/gitweb.perl: don't call S_ISREG() with undef

From: Jakub Narebski <[email-masked]>
Date: Sat, 19 Feb 2011 16:57:02 +0100

On Sat, 19 Feb 2011, Ævar Arnfjörð Bjarmason wrote:

> Change S_ISREG($to_mode_oct) to S_ISREG($from_mode_oct) in the branch
> that handles from modes, not to modes. This logic appears to have been
> caused by copy/paste programming by Jakub Narebski in e8e41a93. It
> would be better to rewrite this code not to be duplicated, but I
> haven't done so.
> 
> This issue caused a failing test on perl 5.13.9, which has a warning
> that turned this up:
> 
>      gitweb.perl: Use of uninitialized value in subroutine entry at /home/avar/g/git/t/../gitweb/gitweb.perl line 4415.

[...]
> Reported-by: perl 5.13.9
> Signed-off-by: Ævar Arnfjörð Bjarmason <[email-masked]>

Thanks for catching this.  I wonder why we didn't caught this earlier...

For what it is worth it:

Acked-by: Jakub Narebski <[email-masked]>

> ---
>  gitweb/gitweb.perl |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index b02372c..1b9369d 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -4412,7 +4412,7 @@ sub git_difftree_body {
>  		}
>  		if ($diff->{'from_mode'} ne ('0' x 6)) {
>  			$from_mode_oct = oct $diff->{'from_mode'};
> -			if (S_ISREG($to_mode_oct)) { # only for regular file
> +			if (S_ISREG($from_mode_oct)) { # only for regular file
>  				$from_mode_str = sprintf("%04o", $from_mode_oct & 0777); # permission bits
>  			}
>  			$from_file_type = file_type($diff->{'from_mode'});
> -- 
> 1.7.2.3
> 
> 

-- 
Jakub Narebski
Poland