Re: [PATCH] netfilter: conntrack: fix -Wformat

From: Joe Perches
Date: Sun Nov 08 2020 - 05:10:32 EST


On Sun, 2020-11-08 at 08:34 +0100, Lukas Bulwahn wrote:
> On Sat, 7 Nov 2020, Joe Perches wrote:
> > On Fri, 2020-11-06 at 23:55 -0800, Nick Desaulniers wrote:
> > > Clang is more aggressive about -Wformat warnings when the format flag
> > > specifies a type smaller than the parameter. Fixes 8 instances of:
> > >
> > > warning: format specifies type 'unsigned short' but the argument has
> > > type 'int' [-Wformat]
> >
> > Likely clang's -Wformat message is still bogus.
> > Wasn't that going to be fixed?
> >
> > Integer promotions are already done on these types to int anyway.
> > Didn't we have this discussion last year?
> >
> > https://lore.kernel.org/lkml/CAKwvOd=mqzj2pAZEUsW-M_62xn4pijpCJmP=B1h_-wEb0NeZsA@xxxxxxxxxxxxxx/
> > https://lore.kernel.org/lkml/CAHk-=wgoxnmsj8GEVFJSvTwdnWm8wVJthefNk2n6+4TC=20e0Q@xxxxxxxxxxxxxx/
> > https://lore.kernel.org/lkml/a68114afb134b8633905f5a25ae7c4e6799ce8f1.camel@xxxxxxxxxxx/
> >
> > Look at commit cbacb5ab0aa0 ("docs: printk-formats: Stop encouraging use
> > of unnecessary %h[xudi] and %hh[xudi]")
> >
> > The "h" and "hh" things should never be used. The only reason for them
> > being used if if you have an "int", but you want to print it out as a
> > "char" (and honestly, that is a really bad reason, you'd be better off
> > just using a proper cast to make the code more obvious).
> >
> Joe, would this be a good rule to check for in checkpatch?
>
> Can Dwaipayan or Aditya give it a try to create a suitable patch to add
> such a rule?

$ git grep -P '"[^"]*%[\d\.\*\-]*h+[idux].*"'

I suppose so.
Please avoid warning on scanf and its variants and the asm bits though.

> Dwaipayan, Aditya, if Joe thinks it is worth a rule, it is "first come,
> first serve" for you to take that task.