Re: [PATCH v1] ACPICA: Unbreak tools build after switching over to strscpy_pad()

From: Jiri Slaby

Date: Tue Jun 23 2026 - 00:03:54 EST


On 22. 06. 26, 20:23, Rafael J. Wysocki wrote:
From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

Commit 97f7d3f9c9ac ("ACPICA: Replace strncpy() with strscpy_pad() in
acpi_ut_safe_strncpy()") switched over the ACPICA code in the kernel to
using strscpy_pad() instead of a combination of strncpy() and manual
NUL-termination of the destination string, but it overlooked the fact
that tools also use the code in question and strscpy_pad() is not
defined in those builds.

Address that by using the original ACPICA code in non-kernel builds.

Fixes: 97f7d3f9c9ac ("ACPICA: Replace strncpy() with strscpy_pad() in acpi_ut_safe_strncpy()")
Reported-by: Jiri Slaby <jirislaby@xxxxxxxxxx>
Closes: https://lore.kernel.org/all/79e9e913-0fb1-4110-804b-c3b5d0edafe4@kernel
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
---
drivers/acpi/acpica/utnonansi.c | 10 ++++++++++
1 file changed, 9 insertions(+)

--- a/drivers/acpi/acpica/utnonansi.c
+++ b/drivers/acpi/acpica/utnonansi.c
@@ -168,7 +168,17 @@ void acpi_ut_safe_strncpy(char *dest, ch

Hmm, how could this become 17, provided you are adding 9 lines to 7 lines? Fixed to 16 and applied -- testing.

{
/* Always terminate destination string */
+#ifdef __KERNEL__
strscpy_pad(dest, source, dest_size);
+#else
+ /*
+ * strscpy_pad() is not defined in ACPICA tools builds, so use strncpy()
+ * and directly NUL-terminate the destination string in that case.
+ */
+ strncpy(dest, source, dest_size);
+ dest[dest_size - 1] = 0;
+#endif
}
#endif





--
js
suse labs