s390: ism: Pass string literal as format argument of dev_set_name()
authorSimon Horman <horms@kernel.org>
Thu, 17 Apr 2025 10:28:23 +0000 (11:28 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 22 Apr 2025 01:36:54 +0000 (18:36 -0700)
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>
Link: https://patch.msgid.link/20250417-ism-str-fmt-v1-1-9818b029874d@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/s390/net/ism_drv.c

index 60ed70a39d2ccade0dcd73207a30551f4bd1203a..b7f15f303ea2dba04758128b3353631fa9270e56 100644 (file)
@@ -611,7 +611,7 @@ static int ism_probe(struct pci_dev *pdev, const struct pci_device_id *id)
        ism->dev.parent = &pdev->dev;
        ism->dev.release = ism_dev_release;
        device_initialize(&ism->dev);
-       dev_set_name(&ism->dev, dev_name(&pdev->dev));
+       dev_set_name(&ism->dev, "%s", dev_name(&pdev->dev));
        ret = device_add(&ism->dev);
        if (ret)
                goto err_dev;