Re: [PATCH net-next] s390: ism: Pass string literal as format argument of dev_set_name()

Simon Horman
2025-04-24T16:28:11Z

On Thu, Apr 17, 2025 at 01:08:14PM +0200, Heiko Carstens wrote:
> On Thu, Apr 17, 2025 at 11:28:23AM +0100, Simon Horman wrote:
> > GCC 14.2.0 reports that passing a non-string literal as the
> > format argument of dev_set_name() is potentially insecure.
> >
> > drivers/s390/net/ism_drv.c: In function 'ism_probe':
> > drivers/s390/net/ism_drv.c:615:2: warning: format not a string literal and no format arguments [-Wformat-security]
> > 615 | dev_set_name(&ism->dev, dev_name(&pdev->dev));
> > | ^~~~~~~~~~~~
> >
> > It seems to me that as pdev is a PCIE device then the dev_name
> > call above should always return the device's BDF, e.g. 00:12.0.
> > That this should not contain format escape sequences. And thus
> > the current usage is safe.
> >
> > But, it seems better to be safe than sorry. And, as a bonus, compiler
> > output becomes less verbose by addressing this issue.
> >
> > Compile tested only.
> > No functional change intended.
> >
> > Signed-off-by: Simon Horman <horms@kernel.org>
> > ---
> > drivers/s390/net/ism_drv.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
>
> It might make sense to say that -Wformat-security was explicitly enabled in
> order to trigger this (probably with KCFLAGS=-Wformat-security ?), since this
> warning is by default disabled.
>
> Just mentioning this, since I was wondering why I haven't seen this.

Thanks Heiko,

Yes, you are right on both counts. I should have mentioned this.
And I did compile with KCFLAGS=-Wformat-security.