Re: [PATCH] checkpatch.pl: fix naked sscanf false positives

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry, I think the Andy thing was the gmail client auto-filling contacts when I
reply all...

On Sat, Feb 6, 2016 at 9:20 AM, Joe Perches <joe@xxxxxxxxxxx> wrote:
>
> It's a single line sscanf vs multi-line sscanf issue
>
> $line works on
>         ret = sscanf(buf, &foo, &bar);
>
> $stat works on that and
>         ret = sscanf(buf,
>                      &foo,
>                      &bar);
>

Ah, ok. I dont think having just the ending paren will work though because the
paren can be on the next line, so the pre-patch statement is most correct.
What we should do, then, is something like:

        [snip]
        $line =~ /\bsscanf\b/ &&
-       ($stat !~ /$Ident\s*=\s*sscanf\s*$balanced_parens/ &&
+       ($stat =~ /\bsscanf\b\s*$balanced_parens/ &&
+       $stat !~ /$Ident\s*=\s*sscanf\s*$balanced_parens/ &&
        $stat !~ /\bsscanf\s*$balanced_parens\s*(?:$Compare)/ &&
        $stat !~ /(?:$Compare)\s*\bsscanf\s*$balanced_parens/)) {
        [snip]

That way, we know we are evaluating a sscanf on the current line, but also
ensure that it is a function call in the current statement.

Would this work?  It seems to on my end.

I can send over the amended patch.

- Kevin
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux