]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ata: libata-eh: Fix compilation warning in ata_eh_link_report()
authorDamien Le Moal <dlemoal@kernel.org>
Tue, 12 Sep 2023 00:08:40 +0000 (09:08 +0900)
committerDamien Le Moal <dlemoal@kernel.org>
Thu, 28 Sep 2023 12:24:18 +0000 (21:24 +0900)
The 6 bytes length of the tries_buf string in ata_eh_link_report() is
too short and results in a gcc compilation warning with W-!:

drivers/ata/libata-eh.c: In function ‘ata_eh_link_report’:
drivers/ata/libata-eh.c:2371:59: warning: ‘%d’ directive output may be truncated writing between 1 and 11 bytes into a region of size 4 [-Wformat-truncation=]
 2371 |                 snprintf(tries_buf, sizeof(tries_buf), " t%d",
      |                                                           ^~
drivers/ata/libata-eh.c:2371:56: note: directive argument in the range [-2147483648, 4]
 2371 |                 snprintf(tries_buf, sizeof(tries_buf), " t%d",
      |                                                        ^~~~~~
drivers/ata/libata-eh.c:2371:17: note: ‘snprintf’ output between 4 and 14 bytes into a destination of size 6
 2371 |                 snprintf(tries_buf, sizeof(tries_buf), " t%d",
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2372 |                          ap->eh_tries);
      |                          ~~~~~~~~~~~~~

Avoid this warning by increasing the string size to 16B.

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/ata/libata-eh.c

index b1b2c276371e30d2f1d43fa727bfd934b831b02c..5686353e442cf41fb27174112617ae51f97fdfee 100644 (file)
@@ -2332,7 +2332,7 @@ static void ata_eh_link_report(struct ata_link *link)
        struct ata_eh_context *ehc = &link->eh_context;
        struct ata_queued_cmd *qc;
        const char *frozen, *desc;
-       char tries_buf[6] = "";
+       char tries_buf[16] = "";
        int tag, nr_failed = 0;
 
        if (ehc->i.flags & ATA_EHI_QUIET)