PM / devfreq: Fix buffer overflow in trans_stat_show
authorChristian Marangi <ansuelsmth@gmail.com>
Tue, 24 Oct 2023 18:30:15 +0000 (20:30 +0200)
committerChanwoo Choi <cw00.choi@samsung.com>
Mon, 13 Nov 2023 01:48:49 +0000 (10:48 +0900)
commit08e23d05fa6dc4fc13da0ccf09defdd4bbc92ff4
treed5bbcc54df9fc80e7f36a07fd9f7e20ba9f4ba35
parentb85ea95d086471afb4ad062012a4d73cd328fa86
PM / devfreq: Fix buffer overflow in trans_stat_show

Fix buffer overflow in trans_stat_show().

Convert simple snprintf to the more secure scnprintf with size of
PAGE_SIZE.

Add condition checking if we are exceeding PAGE_SIZE and exit early from
loop. Also add at the end a warning that we exceeded PAGE_SIZE and that
stats is disabled.

Return -EFBIG in the case where we don't have enough space to write the
full transition table.

Also document in the ABI that this function can return -EFBIG error.

Link: https://lore.kernel.org/all/20231024183016.14648-2-ansuelsmth@gmail.com/
Cc: stable@vger.kernel.org
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218041
Fixes: e552bbaf5b98 ("PM / devfreq: Add sysfs node for representing frequency transition information.")
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Documentation/ABI/testing/sysfs-class-devfreq
drivers/devfreq/devfreq.c