As new FEC types were added, we need a check to avoid overflows:
        drivers/media/dvb-frontends/cx22700.c:172 cx22700_set_tps() error: 
buffer overflow 'fec_tab' 6 <= 6
        drivers/media/dvb-frontends/cx22700.c:173 cx22700_set_tps() error: 
buffer overflow 'fec_tab' 6 <= 6

Signed-off-by: Mauro Carvalho Chehab <mche...@osg.samsung.com>

diff --git a/drivers/media/dvb-frontends/cx22700.c 
b/drivers/media/dvb-frontends/cx22700.c
index 3d399d9a6343..86563260d0f2 100644
--- a/drivers/media/dvb-frontends/cx22700.c
+++ b/drivers/media/dvb-frontends/cx22700.c
@@ -169,6 +169,9 @@ static int cx22700_set_tps(struct cx22700_state *state,
 
        cx22700_writereg (state, 0x04, val);
 
+       if (p->code_rate_HP - FEC_1_2 >= sizeof(fec_tab) ||
+           p->code_rate_LP - FEC_1_2 >= sizeof(fec_tab))
+               return -EINVAL;
        val = fec_tab[p->code_rate_HP - FEC_1_2] << 3;
        val |= fec_tab[p->code_rate_LP - FEC_1_2];
 
-- 
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to