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 |
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 --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;
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(-)