[PATCH v2] media: dvb-frontends: Fix out of bound for buffer

Ilya Krutskih posted 1 patch 2 days, 8 hours ago
drivers/media/dvb-frontends/mb86a16.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] media: dvb-frontends: Fix out of bound for buffer
Posted by Ilya Krutskih 2 days, 8 hours ago
Result of pointer shifting is out of bound for buffer 'prev_swp_freq'
because of incrementation inside 'while' cycle in case more than
20 steps of it.

Add check: prev_freq_num < 20

Cc: stable@vger.kernel.org # v5.10+
Fixes: 9a0bf528b4d6 ([media] move the dvb/frontends to drivers/media/dvb-frontends)
Signed-off-by: Ilya Krutskih <devsec@tpz.ru>
---
 drivers/media/dvb-frontends/mb86a16.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/dvb-frontends/mb86a16.c b/drivers/media/dvb-frontends/mb86a16.c
index 9033e39d75f4..da8985b91475 100644
--- a/drivers/media/dvb-frontends/mb86a16.c
+++ b/drivers/media/dvb-frontends/mb86a16.c
@@ -1188,7 +1188,7 @@ static int mb86a16_set_fe(struct mb86a16_state *state)
 
 			signal_dupl = 0;
 			for (j = 0; j < prev_freq_num; j++) {
-				if ((abs(prev_swp_freq[j] - swp_freq)) < (swp_ofs * 3 / 2)) {
+				if ((prev_freq_num < 20) && (abs(prev_swp_freq[j] - swp_freq)) < (swp_ofs * 3 / 2)) {
 					signal_dupl = 1;
 					dprintk(verbose, MB86A16_INFO, 1, "Probably Duplicate Signal, j = %d", j);
 				}
-- 
2.43.0