thermal: int340x_thermal: Use scnprintf() for avoiding potential buffer overflow
authorTakashi Iwai <tiwai@suse.de>
Wed, 11 Mar 2020 09:27:18 +0000 (10:27 +0100)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Mon, 23 Mar 2020 14:20:47 +0000 (15:20 +0100)
Since snprintf() returns the would-be-output size instead of the
actual output size, the succeeding calls may go beyond the given
buffer limit.  Fix it by replacing with scnprintf().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Reviewed-by: Pandruvada, Srinivas <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20200311092718.24052-1-tiwai@suse.de
drivers/thermal/intel/int340x_thermal/int3400_thermal.c

index efae0c0..529df71 100644 (file)
@@ -65,7 +65,7 @@ static ssize_t available_uuids_show(struct device *dev,
        for (i = 0; i < INT3400_THERMAL_MAXIMUM_UUID; i++) {
                if (priv->uuid_bitmap & (1 << i))
                        if (PAGE_SIZE - length > 0)
-                               length += snprintf(&buf[length],
+                               length += scnprintf(&buf[length],
                                                   PAGE_SIZE - length,
                                                   "%s\n",
                                                   int3400_thermal_uuids[i]);