Skip to content

Commit

Permalink
drivers/base/cpu: Use scnprintf() for avoiding potential buffer overflow
Browse files Browse the repository at this point in the history
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>
Link: https://lore.kernel.org/r/20200311080207.12046-2-tiwai@suse.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Takashi Iwai authored and Greg Kroah-Hartman committed Mar 11, 2020
1 parent 9a2dd57 commit 4636a04
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/base/cpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -258,13 +258,13 @@ static ssize_t print_cpus_offline(struct device *dev,
buf[n++] = ',';

if (nr_cpu_ids == total_cpus-1)
n += snprintf(&buf[n], len - n, "%u", nr_cpu_ids);
n += scnprintf(&buf[n], len - n, "%u", nr_cpu_ids);
else
n += snprintf(&buf[n], len - n, "%u-%d",
n += scnprintf(&buf[n], len - n, "%u-%d",
nr_cpu_ids, total_cpus-1);
}

n += snprintf(&buf[n], len - n, "\n");
n += scnprintf(&buf[n], len - n, "\n");
return n;
}
static DEVICE_ATTR(offline, 0444, print_cpus_offline, NULL);
Expand Down

0 comments on commit 4636a04

Please sign in to comment.