Messages in this thread | | | Date | Wed, 10 Apr 2024 21:10:01 +0000 | From | Justin Stitt <> | Subject | Re: [PATCH 2/5] [v2] acpi: disable -Wstringop-truncation |
| |
Hi,
On Tue, Apr 09, 2024 at 04:00:55PM +0200, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > gcc -Wstringop-truncation warns about copying a string that results in a > missing nul termination: > > drivers/acpi/acpica/tbfind.c: In function 'acpi_tb_find_table': > drivers/acpi/acpica/tbfind.c:60:9: error: 'strncpy' specified bound 6 equals destination size [-Werror=stringop-truncation] > 60 | strncpy(header.oem_id, oem_id, ACPI_OEM_ID_SIZE); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > drivers/acpi/acpica/tbfind.c:61:9: error: 'strncpy' specified bound 8 equals destination size [-Werror=stringop-truncation] > 61 | strncpy(header.oem_table_id, oem_table_id, ACPI_OEM_TABLE_ID_SIZE); > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > The code works as intended, and the warning could be addressed by using > a memcpy(), but turning the warning off for this file works equally well > and may be easir to merge.
Dang, I would've really liked to see these strncpy()'s dealt with [1]!
The warning is there because that specific usage of strncpy is plain wrong. strncpy() is a string api and this usage looks like it has arguments and results not resembling C-strings.
Not sure if turning off correct warnings is the right call.
Link: https://github.com/KSPP/linux/issues/90 [1]
> > Fixes: 47c08729bf1c ("ACPICA: Fix for LoadTable operator, input strings") > Link: https://lore.kernel.org/lkml/CAJZ5v0hoUfv54KW7y4223Mn9E7D4xvR7whRFNLTBqCZMUxT50Q@mail.gmail.com/#t > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > drivers/acpi/acpica/Makefile | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/acpi/acpica/Makefile b/drivers/acpi/acpica/Makefile > index 30f3fc13c29d..8d18af396de9 100644 > --- a/drivers/acpi/acpica/Makefile > +++ b/drivers/acpi/acpica/Makefile > @@ -5,6 +5,7 @@ > > ccflags-y := -D_LINUX -DBUILDING_ACPICA > ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT > +CFLAGS_tbfind.o += $(call cc-disable-warning, stringop-truncation) > > # use acpi.o to put all files here into acpi.o modparam namespace > obj-y += acpi.o > -- > 2.39.2 >
Thanks Justin
| |