summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>2015-04-28 19:02:19 -0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-08-03 09:29:43 -0700
commit85c81d78fd02debcdc0f885a10075f9aff55ee81 (patch)
tree7acc4cf03c665d217ed6cf4eee8d75302d5e461d
parentaa264839927926ea7e4de21ba9d086708bc0ec18 (diff)
downloadlinux-stable-85c81d78fd02debcdc0f885a10075f9aff55ee81.tar.gz
linux-stable-85c81d78fd02debcdc0f885a10075f9aff55ee81.tar.bz2
linux-stable-85c81d78fd02debcdc0f885a10075f9aff55ee81.zip
af9013: Don't accept invalid bandwidth
commit d7b76c91f471413de9ded837bddeca2164786571 upstream. 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. Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-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 fb504f1e9125..5930aee6b5d0 100644
--- a/drivers/media/dvb-frontends/af9013.c
+++ b/drivers/media/dvb-frontends/af9013.c
@@ -606,6 +606,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));
}