]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
thermal: core: Use strnlen() in thermal_zone_device_register_with_trips()
authorThorsten Blum <thorsten.blum@linux.dev>
Tue, 16 Dec 2025 13:09:44 +0000 (14:09 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 7 Jan 2026 20:27:07 +0000 (21:27 +0100)
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 <thorsten.blum@linux.dev>
[ rjw: Subject edits ]
Link: https://patch.msgid.link/20251216130943.40180-2-thorsten.blum@linux.dev
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/thermal/thermal_core.c

index 89758c9934ec67723356415783a6bfaa13f59fc8..dc9f7416f7ff6caf6eb295731231255aa87dca09 100644 (file)
@@ -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);