]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
iommu/vt-d: Increase buffer size for device name
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 4 Nov 2024 01:40:29 +0000 (09:40 +0800)
committerJoerg Roedel <jroedel@suse.de>
Tue, 5 Nov 2024 12:32:20 +0000 (13:32 +0100)
GCC is not happy with the current code, e.g.:

.../iommu/intel/dmar.c:1063:9: note: ‘sprintf’ output between 6 and 15 bytes into a destination of size 13
 1063 |         sprintf(iommu->name, "dmar%d", iommu->seq_id);

When `make W=1` is supplied, this prevents kernel building. Fix it by
increasing the buffer size for device name and use sizeoF() instead of
hard coded constants.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20241014104529.4025937-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel/dmar.c
drivers/iommu/intel/iommu.h

index eaf862e8dea1a97188a1d7e38de3dfa1155f26a8..e16c2b1d7633bdbce6671a30f7f74cbeaf540f8b 100644 (file)
@@ -1060,7 +1060,7 @@ static int alloc_iommu(struct dmar_drhd_unit *drhd)
                err = iommu->seq_id;
                goto error;
        }
-       sprintf(iommu->name, "dmar%d", iommu->seq_id);
+       snprintf(iommu->name, sizeof(iommu->name), "dmar%d", iommu->seq_id);
 
        err = map_iommu(iommu, drhd);
        if (err) {
index f9fba9a26dac942e862473d2f419b72cfb38181c..79692d7a26d18806a25b890846e2fe3e5c9ff90f 100644 (file)
@@ -720,7 +720,7 @@ struct intel_iommu {
        int             msagaw; /* max sagaw of this iommu */
        unsigned int    irq, pr_irq, perf_irq;
        u16             segment;     /* PCI segment# */
-       unsigned char   name[13];    /* Device Name */
+       unsigned char   name[16];    /* Device Name */
 
 #ifdef CONFIG_INTEL_IOMMU
        unsigned long   *domain_ids; /* bitmap of domains */