[PATCH] drm/xe: Fix global-out-of-bounds in rule_matches

Nirmoy Das nirmoy.das at intel.com
Mon Jul 1 15:37:02 UTC 2024


Do post-increment instead of pre-increment to fix:
[ 9344.404516] BUG: KASAN: global-out-of-bounds in rule_matches+0xb72/0x11c0 [xe]
[ 9344.411887] Read of size 1 at addr ffffffffa330b210 by task xe_module_load/248463

Fixes: dc72c52a42e0 ("drm/xe/rtp: Allow to OR rules")
Cc: Lucas De Marchi <lucas.demarchi at intel.com>
Signed-off-by: Nirmoy Das <nirmoy.das at intel.com>
---
 drivers/gpu/drm/xe/xe_rtp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xe/xe_rtp.c b/drivers/gpu/drm/xe/xe_rtp.c
index 5b27f7c45ea3..f6ec8df5fc94 100644
--- a/drivers/gpu/drm/xe/xe_rtp.c
+++ b/drivers/gpu/drm/xe/xe_rtp.c
@@ -121,7 +121,7 @@ static bool rule_matches(const struct xe_device *xe,
 			 * Advance rules until we find XE_RTP_MATCH_OR to check
 			 * if there's another set of conditions to check
 			 */
-			while (i < n_rules && rules[++i].match_type != XE_RTP_MATCH_OR)
+			while (i < n_rules && rules[i++].match_type != XE_RTP_MATCH_OR)
 				;
 
 			if (i >= n_rules)
-- 
2.42.0



More information about the Intel-xe mailing list