From 1d97b8e3bfbb4fec99054cb5c413652a0ccfdeec Mon Sep 17 00:00:00 2001 From: Thorsten Blum Date: Tue, 16 Dec 2025 14:09:44 +0100 Subject: [PATCH] thermal: core: Use strnlen() in thermal_zone_device_register_with_trips() Replace strlen() with the safer strnlen() and calculate the length of the thermal zone name 'type' only once. No functional changes. Signed-off-by: Thorsten Blum [ rjw: Subject edits ] Link: https://patch.msgid.link/20251216130943.40180-2-thorsten.blum@linux.dev Signed-off-by: Rafael J. Wysocki --- drivers/thermal/thermal_core.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index 89758c9934ec6..dc9f7416f7ff6 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -1505,15 +1505,19 @@ thermal_zone_device_register_with_trips(const char *type, const struct thermal_trip *trip = trips; struct thermal_zone_device *tz; struct thermal_trip_desc *td; + size_t type_len = 0; int id; int result; - if (!type || strlen(type) == 0) { + if (type) + type_len = strnlen(type, THERMAL_NAME_LENGTH); + + if (type_len == 0) { pr_err("No thermal zone type defined\n"); return ERR_PTR(-EINVAL); } - if (strlen(type) >= THERMAL_NAME_LENGTH) { + if (type_len == THERMAL_NAME_LENGTH) { pr_err("Thermal zone name (%s) too long, should be under %d chars\n", type, THERMAL_NAME_LENGTH); return ERR_PTR(-EINVAL); -- 2.47.3