[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240702132413.4318-1-make24@iscas.ac.cn>
Date: Tue, 2 Jul 2024 21:24:13 +0800
From: Junlin Li <make24@...as.ac.cn>
To: mchehab@...nel.org,
tzimmermann@...e.de,
peda@...ntia.se,
wsa+renesas@...g-engineering.com,
hkallweit1@...il.com,
laurent.pinchart+renesas@...asonboard.com
Cc: linux-media@...r.kernel.org,
linux-kernel@...r.kernel.org,
Junlin Li <make24@...as.ac.cn>
Subject: [PATCH] drivers: media: dvb-frontends/rtl2832: fix an out-of-bounds write error
Ensure index in rtl2830_pid_filter
does not exceed 31 to prevent out-of-bounds access.
dev->filters is a 32-bit value,
so set_bit and clear_bit functions should only
operate on indices from 0 to 31.
If index is 32, it will attempt to access a non-existent 33rd bit,
leading to out-of-bounds access.
Change the boundary check
from index > 32 to index >= 32 to resolve this issue.
Signed-off-by: Junlin Li <make24@...as.ac.cn>
---
drivers/media/dvb-frontends/rtl2832.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/dvb-frontends/rtl2832.c b/drivers/media/dvb-frontends/rtl2832.c
index 5142820b1b3d..76c3f40443b2 100644
--- a/drivers/media/dvb-frontends/rtl2832.c
+++ b/drivers/media/dvb-frontends/rtl2832.c
@@ -983,7 +983,7 @@ static int rtl2832_pid_filter(struct dvb_frontend *fe, u8 index, u16 pid,
index, pid, onoff, dev->slave_ts);
/* skip invalid PIDs (0x2000) */
- if (pid > 0x1fff || index > 32)
+ if (pid > 0x1fff || index >= 32)
return 0;
if (onoff)
--
2.34.1
Powered by blists - more mailing lists