ACPI: battery: Fix missing NUL-termination with large strings
authorArmin Wolf <W_Armin@gmx.de>
Sat, 14 Jan 2023 08:50:50 +0000 (09:50 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 18 Jan 2023 19:52:05 +0000 (20:52 +0100)
commitf2ac14b5f197e4a2dec51e5ceaa56682ff1592bc
tree506aadf715cd98a2446be771261a407470d6fc46
parent5dc4c995db9eb45f6373a956eb1f69460e69e6d4
ACPI: battery: Fix missing NUL-termination with large strings

When encountering a string bigger than the destination buffer (32 bytes),
the string is not properly NUL-terminated, causing buffer overreads later.

This for example happens on the Inspiron 3505, where the battery
model name is larger than 32 bytes, which leads to sysfs showing
the model name together with the serial number string (which is
NUL-terminated and thus prevents worse).

Fix this by using strscpy() which ensures that the result is
always NUL-terminated.

Fixes: 106449e870b3 ("ACPI: Battery: Allow extract string from integer")
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/battery.c