With gcc and W=1 option to compile kernel, warning happens:
inlined from ‘acpi_tb_find_table’ at drivers/acpi/acpica/tbfind.c:60:2:
include/linux/fortify-string.h:68:30: error: ‘__builtin_strncpy’ specified
bound 6 equals destination size [-Werror=stringop-truncation]
Use strscpy to avoid this warning and is safer.
Signed-off-by: Su Hui <[email protected]>
---
drivers/acpi/acpica/tbfind.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/acpi/acpica/tbfind.c b/drivers/acpi/acpica/tbfind.c
index 1c1b2e284bd9..5536d1755188 100644
--- a/drivers/acpi/acpica/tbfind.c
+++ b/drivers/acpi/acpica/tbfind.c
@@ -57,8 +57,8 @@ acpi_tb_find_table(char *signature,
memset(&header, 0, sizeof(struct acpi_table_header));
ACPI_COPY_NAMESEG(header.signature, signature);
- strncpy(header.oem_id, oem_id, ACPI_OEM_ID_SIZE);
- strncpy(header.oem_table_id, oem_table_id, ACPI_OEM_TABLE_ID_SIZE);
+ strscpy(header.oem_id, oem_id, ACPI_OEM_ID_SIZE);
+ strscpy(header.oem_table_id, oem_table_id, ACPI_OEM_TABLE_ID_SIZE);
/* Search for the table */
--
2.30.2
On Thu, Aug 31, 2023 at 9:35 AM Su Hui <[email protected]> wrote:
>
> With gcc and W=1 option to compile kernel, warning happens:
>
> inlined from ‘acpi_tb_find_table’ at drivers/acpi/acpica/tbfind.c:60:2:
> include/linux/fortify-string.h:68:30: error: ‘__builtin_strncpy’ specified
> bound 6 equals destination size [-Werror=stringop-truncation]
>
> Use strscpy to avoid this warning and is safer.
>
> Signed-off-by: Su Hui <[email protected]>
Please see
https://lore.kernel.org/linux-acpi/202308241612.DFE4119@keescook/
> ---
> drivers/acpi/acpica/tbfind.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/acpica/tbfind.c b/drivers/acpi/acpica/tbfind.c
> index 1c1b2e284bd9..5536d1755188 100644
> --- a/drivers/acpi/acpica/tbfind.c
> +++ b/drivers/acpi/acpica/tbfind.c
> @@ -57,8 +57,8 @@ acpi_tb_find_table(char *signature,
>
> memset(&header, 0, sizeof(struct acpi_table_header));
> ACPI_COPY_NAMESEG(header.signature, signature);
> - strncpy(header.oem_id, oem_id, ACPI_OEM_ID_SIZE);
> - strncpy(header.oem_table_id, oem_table_id, ACPI_OEM_TABLE_ID_SIZE);
> + strscpy(header.oem_id, oem_id, ACPI_OEM_ID_SIZE);
> + strscpy(header.oem_table_id, oem_table_id, ACPI_OEM_TABLE_ID_SIZE);
>
> /* Search for the table */
>
> --
> 2.30.2
>