diff mbox series

[v2,08/21] ata: libata-core: Fix compilation warning in ata_dev_config_ncq()

Message ID 20230912005655.368075-9-dlemoal@kernel.org (mailing list archive)
State Superseded
Headers show
Series Fix libata suspend/resume handling and code cleanup | expand

Commit Message

Damien Le Moal Sept. 12, 2023, 12:56 a.m. UTC
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: Damien Le Moal <dlemoal@kernel.org>
---
 drivers/ata/libata-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Hannes Reinecke Sept. 12, 2023, 6:14 a.m. UTC | #1
On 9/12/23 02:56, Damien Le Moal wrote:
> 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: Damien Le Moal <dlemoal@kernel.org>
> ---
>   drivers/ata/libata-core.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
> index 18b2a0da9e54..2405ac8b53f0 100644
> --- a/drivers/ata/libata-core.c
> +++ b/drivers/ata/libata-core.c
> @@ -2619,7 +2619,7 @@ static int ata_dev_config_lba(struct ata_device *dev)
>   {
>   	const u16 *id = dev->id;
>   	const char *lba_desc;
> -	char ncq_desc[24];
> +	char ncq_desc[32];
>   	int ret;
>   
>   	dev->flags |= ATA_DFLAG_LBA;
Reviewed-by: Hannes Reinecke <hare@suse.de>

Cheers,

Hannes
diff mbox series

Patch

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 18b2a0da9e54..2405ac8b53f0 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -2619,7 +2619,7 @@  static int ata_dev_config_lba(struct ata_device *dev)
 {
 	const u16 *id = dev->id;
 	const char *lba_desc;
-	char ncq_desc[24];
+	char ncq_desc[32];
 	int ret;
 
 	dev->flags |= ATA_DFLAG_LBA;