Re: [PATCH v3] platform/x86: surfacepro3_button: replace deprecated strcpy() with strscpy()

From: Ilpo Järvinen
Date: Tue Aug 19 2025 - 06:01:30 EST


On Mon, 28 Jul 2025, Miguel García wrote:

> Replace strcpy() with strscpy() when copying SURFACE_BUTTON_DEVICE_NAME
> into the device’s embedded name buffer returned by acpi_device_name().
> Bound the copy with MAX_ACPI_DEVICE_NAME_LEN to guarantee NUL-termination
> and avoid pointer-sized sizeof() mistakes.
>
> This is a mechanical safety improvement; functional behavior is unchanged.
>
> Signed-off-by: Miguel García <miguelgarciaroman8@xxxxxxxxx>
> ---
> v2:
> - Use MAX_ACPI_DEVICE_NAME_LEN instead of sizeof(name).
>
> v3:
> - Add full commit message (v2 was sent without message).
>
> Testing:
> - Build-tested on x86_64 (defconfig, allmodconfig, W=1).
> - No runtime testing on Surface hardware
>
> drivers/platform/surface/surfacepro3_button.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/platform/surface/surfacepro3_button.c b/drivers/platform/surface/surfacepro3_button.c
> index 2755601f979c..772e107151f6 100644
> --- a/drivers/platform/surface/surfacepro3_button.c
> +++ b/drivers/platform/surface/surfacepro3_button.c
> @@ -211,7 +211,7 @@ static int surface_button_add(struct acpi_device *device)
> }
>
> name = acpi_device_name(device);
> - strcpy(name, SURFACE_BUTTON_DEVICE_NAME);
> + strscpy(name, SURFACE_BUTTON_DEVICE_NAME, MAX_ACPI_DEVICE_NAME_LEN);

As mentioned earlier, I'd prefer this to use the two argument version of
strscpy():

strscpy(acpi_device_name(device), SURFACE_BUTTON_DEVICE_NAME);

...Changing to that may mean changes to name variable as well (remove
it?).

--
i.