Message ID | 20240409140059.3806717-3-arnd@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | address remaining stringop-truncation warnings | expand |
On Tue, Apr 9, 2024 at 4:01 PM Arnd Bergmann <arnd@kernel.org> 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. "easier" (fixed up). Tricky that, but OK.let's get the warning off the table. Applied as 6.10 material, thanks! > 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 > >
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
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