[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20251211172251.852254-1-devsec@tpz.ru>
Date: Thu, 11 Dec 2025 17:22:49 +0000
From: Ilya Krutskih <devsec@....ru>
To: Mauro Carvalho Chehab <mchehab@...nel.org>
CC: Ilya Krutskih <devsec@....ru>, <linux-media@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <stable@...r.kernel.org>,
<lvc-project@...uxtesting.org>
Subject: [PATCH v2] media: dvb-frontends: Fix out of bound for buffer
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@...r.kernel.org # v5.10+
Fixes: 9a0bf528b4d6 ([media] move the dvb/frontends to drivers/media/dvb-frontends)
Signed-off-by: Ilya Krutskih <devsec@....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
Powered by blists - more mailing lists