thunderbolt: Use scnprintf() for avoiding potential buffer overflow
authorTakashi Iwai <tiwai@suse.de>
Wed, 11 Mar 2020 09:28:07 +0000 (10:28 +0100)
committerMika Westerberg <mika.westerberg@linux.intel.com>
Thu, 12 Mar 2020 08:27:41 +0000 (11:27 +0300)
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>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/thunderbolt/domain.c

index b7980c856898e7382a6562c7c1b97ed17f549505..68c1b93ac5d9ea90eccd3a25ea7b18cf15242ee9 100644 (file)
@@ -147,10 +147,10 @@ static ssize_t boot_acl_show(struct device *dev, struct device_attribute *attr,
 
        for (ret = 0, i = 0; i < tb->nboot_acl; i++) {
                if (!uuid_is_null(&uuids[i]))
-                       ret += snprintf(buf + ret, PAGE_SIZE - ret, "%pUb",
+                       ret += scnprintf(buf + ret, PAGE_SIZE - ret, "%pUb",
                                        &uuids[i]);
 
-               ret += snprintf(buf + ret, PAGE_SIZE - ret, "%s",
+               ret += scnprintf(buf + ret, PAGE_SIZE - ret, "%s",
                               i < tb->nboot_acl - 1 ? "," : "\n");
        }