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

From: Colin Ian King
Date: Wed Mar 02 2022 - 13:03:05 EST


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@xxxxxxxxx>
---
mm/damon/sysfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

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;
--
2.34.1