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

Miguel García posted 1 patch 2 months, 1 week ago
drivers/platform/surface/surfacepro3_button.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v3] platform/x86: surfacepro3_button: replace deprecated strcpy() with strscpy()
Posted by Miguel García 2 months, 1 week ago
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@gmail.com>
---
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);
 	snprintf(button->phys, sizeof(button->phys), "%s/buttons", hid);
 
 	input->name = name;
-- 
2.34.1

Re: [PATCH v3] platform/x86: surfacepro3_button: replace deprecated strcpy() with strscpy()
Posted by Ilpo Järvinen 1 month, 2 weeks ago
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@gmail.com>
> ---
> 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.