Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drivers: media: dvb-frontends/rtl2830: 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.

Fixes: df70ddad81b4 ("[media] rtl2830: implement PID filter")
Signed-off-by: Junlin Li <make24@iscas.ac.cn>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

authored by

Junlin Li and committed by
Hans Verkuil
46d7ebfe 8ae06f36

+1 -1
+1 -1
drivers/media/dvb-frontends/rtl2830.c
··· 609 609 index, pid, onoff); 610 610 611 611 /* skip invalid PIDs (0x2000) */ 612 - if (pid > 0x1fff || index > 32) 612 + if (pid > 0x1fff || index >= 32) 613 613 return 0; 614 614 615 615 if (onoff)