2023-08-31 11:41:20

by Su Hui

[permalink] [raw]
Subject: [PATCH 1/2] ACPICA: Use strscpy to replace strncpy

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



2023-08-31 19:43:27

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH 1/2] ACPICA: Use strscpy to replace strncpy

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
>