• Damien Le Moal's avatar
    ata: libata-core: Fix compilation warning in ata_dev_config_ncq() · ed518d9b
    Damien Le Moal authored
    The 24 bytes length allocated to the ncq_desc string in
    ata_dev_config_lba() for ata_dev_config_ncq() to use is too short,
    causing the following gcc compilation warnings when compiling with W=1:
    
    drivers/ata/libata-core.c: In function ‘ata_dev_configure’:
    drivers/ata/libata-core.c:2378:56: warning: ‘%d’ directive output may be truncated writing between 1 and 2 bytes into a region of size between 1 and 11 [-Wformat-truncation=]
     2378 |                 snprintf(desc, desc_sz, "NCQ (depth %d/%d)%s", hdepth,
          |                                                        ^~
    In function ‘ata_dev_config_ncq’,
        inlined from ‘ata_dev_config_lba’ at drivers/ata/libata-core.c:2649:8,
        inlined from ‘ata_dev_configure’ at drivers/ata/libata-core.c:2952:9:
    drivers/ata/libata-core.c:2378:41: note: directive argument in the range [1, 32]
     2378 |                 snprintf(desc, desc_sz, "NCQ (depth %d/%d)%s", hdepth,
          |                                         ^~~~~~~~~~~~~~~~~~~~~
    drivers/ata/libata-core.c:2378:17: note: ‘snprintf’ output between 16 and 31 bytes into a destination of size 24
     2378 |                 snprintf(desc, desc_sz, "NCQ (depth %d/%d)%s", hdepth,
          |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     2379 |                         ddepth, aa_desc);
          |                         ~~~~~~~~~~~~~~~~
    
    Avoid these warnings and the potential truncation by changing the size
    of the ncq_desc string to 32 characters.
    Signed-off-by: default avatarDamien Le Moal <dlemoal@kernel.org>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
    Tested-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    ed518d9b
libata-core.c 171 KB