Re: [PATCH] checkpatch: fix uninitialized var when run with --no-tree

From: Brian Norris
Date: Fri Oct 28 2016 - 22:36:20 EST


On Fri, Oct 28, 2016 at 07:26:31PM -0700, Brian Norris wrote:
> From: Brian Norris <computersforpeace@xxxxxxxxx>
>
> If checkpatch.pl gets copied out of the tree, --no-tree shouldn't start
> complaining:
>
> Use of uninitialized value $root in concatenation (.) or string at
> /path/to/checkpatch.pl line 764.
>
> Let's just give the safe answer instead -- don't warn about "obsolete"
> files.
>
> Fixes: 85b0ee18bbf8 ("checkpatch: see if modified files are marked obsolete in MAINTAINERS")
> Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
> ---
> This is a 4.9-rc1 regression
>
> scripts/checkpatch.pl | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index a8368d1c4348..c8cd643dbc6f 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -761,6 +761,8 @@ sub seed_camelcase_file {
> sub is_maintained_obsolete {
> my ($filename) = @_;
>
> + return 0 if (!$tree);

Actually, I'm torn on this. It looks really odd to check for !$tree
here, but it's the only supported case where $root shouldn't be defined.
Maybe (!defined $root) is a better test? (Sorry, I did a double-take on
this after I sent it.)

Both would be equally correct, but I suppose the latter would be
clearer. I'll send v2.

Brian

> +
> return 0 if (!(-e "$root/scripts/get_maintainer.pl"));
>
> my $status = `perl $root/scripts/get_maintainer.pl --status --nom --nol --nogit --nogit-fallback -f $filename 2>&1`;
> --
> 2.8.0.rc3.226.g39d4020
>