summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-04-28 22:02:19 (GMT)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-04-30 17:26:22 (GMT)
commitd7b76c91f471413de9ded837bddeca2164786571 (patch)
tree3b5b526a9b33639d60c8951cc2e70a2de346189a /drivers
parent1fa2337a315a2448c5434f41e00d56b01a22283c (diff)
downloadlinux-d7b76c91f471413de9ded837bddeca2164786571.tar.xz
[media] af9013: Don't accept invalid bandwidth
If userspace sends an invalid bandwidth, it should either return EINVAL or switch to auto mode. This driver will go past an array and program the hardware on a wrong way if this happens. Cc: stable@vger.kernel.org Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/dvb-frontends/af9013.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/media/dvb-frontends/af9013.c b/drivers/media/dvb-frontends/af9013.c
index 8001690..ba6c8f6 100644
--- a/drivers/media/dvb-frontends/af9013.c
+++ b/drivers/media/dvb-frontends/af9013.c
@@ -605,6 +605,10 @@ static int af9013_set_frontend(struct dvb_frontend *fe)
}
}
+ /* Return an error if can't find bandwidth or the right clock */
+ if (i == ARRAY_SIZE(coeff_lut))
+ return -EINVAL;
+
ret = af9013_wr_regs(state, 0xae00, coeff_lut[i].val,
sizeof(coeff_lut[i].val));
}