diff mbox series

mm/damon/sysfs: Fix an array out-of-bounds read error due

Message ID 20220302180252.1099406-1-colin.i.king@gmail.com (mailing list archive)
State New
Headers show
Series mm/damon/sysfs: Fix an array out-of-bounds read error due | expand

Commit Message

Colin Ian King March 2, 2022, 6:02 p.m. UTC
There is an off-by-one error in the upper limit to a for-loop that
causes an out-of-bounds read error on the array
damon_sysfs_wmark_metric_strs. Fix the comparison by replacing
the <= operator with <.

Fixes: 8f614da9d987 ("mm/damon/sysfs: support DAMOS watermarks")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
 mm/damon/sysfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andrew Morton March 2, 2022, 8:53 p.m. UTC | #1
On Wed,  2 Mar 2022 18:02:52 +0000 Colin Ian King <colin.i.king@gmail.com> wrote:

> There is an off-by-one error in the upper limit to a for-loop that
> causes an out-of-bounds read error on the array
> damon_sysfs_wmark_metric_strs. Fix the comparison by replacing
> the <= operator with <.
> 

Thanks, we already have
https://lkml.kernel.org/r/20220301185619.2904-1-sj@kernel.org
diff mbox series

Patch

diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c
index 32a9d21c0db5..fda2506c676f 100644
--- a/mm/damon/sysfs.c
+++ b/mm/damon/sysfs.c
@@ -266,7 +266,7 @@  static ssize_t metric_store(struct kobject *kobj, struct kobj_attribute *attr,
 			struct damon_sysfs_watermarks, kobj);
 	enum damos_wmark_metric metric;
 
-	for (metric = 0; metric <= NR_DAMOS_WMARK_METRICS; metric++) {
+	for (metric = 0; metric < NR_DAMOS_WMARK_METRICS; metric++) {
 		if (sysfs_streq(buf, damon_sysfs_wmark_metric_strs[metric])) {
 			watermarks->metric = metric;
 			return count;