diff mbox series

drivers: media: dvb-frontends/rtl2832: fix an out-of-bounds write error

Message ID 20240702132413.4318-1-make24@iscas.ac.cn (mailing list archive)
State New
Headers show
Series drivers: media: dvb-frontends/rtl2832: fix an out-of-bounds write error | expand

Commit Message

Ma Ke July 2, 2024, 1:24 p.m. UTC
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@iscas.ac.cn>
---
 drivers/media/dvb-frontends/rtl2832.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Markus Elfring July 3, 2024, 4:08 p.m. UTC | #1
> Ensure index in rtl2830_pid_filter

Please correct such information according to the shown function name “rtl2832_pid_filter”
in the proposed diff fragment.


> does not exceed 31 to prevent out-of-bounds access.
…

Please adjust the word wrapping.
You may occasionally put more than 51 characters into text lines
of such a change description.


…
> Signed-off-by: Junlin Li <make24@iscas.ac.cn>

Under which circumstances will applications of the Developer's Certificate of Origin
be reconsidered any more (after three different names were presented so far)?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.10-rc6#n398


Would you like to omit the text “drivers: ” from the subsystem specification?

Regards,
Markus
diff mbox series

Patch

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)