summaryrefslogtreecommitdiff
path: root/drivers/media/platform/marvell-ccic/mcam-core.c
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2013-05-29 07:00:02 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2013-06-17 08:54:44 -0300
commit4e032f3f58800a998bae79150909410d7a37206f (patch)
tree89f74545ade5eded447a10e3cbe85347fd49a966 /drivers/media/platform/marvell-ccic/mcam-core.c
parent9dd1d6f01750955ae5183f0da73606b314cc1a42 (diff)
[media] marvell-ccic: check register address
Prevent out-of-range register accesses. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Cc: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/platform/marvell-ccic/mcam-core.c')
-rw-r--r--drivers/media/platform/marvell-ccic/mcam-core.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/media/platform/marvell-ccic/mcam-core.c b/drivers/media/platform/marvell-ccic/mcam-core.c
index a187161e980e..c69cfc4413fc 100644
--- a/drivers/media/platform/marvell-ccic/mcam-core.c
+++ b/drivers/media/platform/marvell-ccic/mcam-core.c
@@ -1404,6 +1404,8 @@ static int mcam_vidioc_g_register(struct file *file, void *priv,
{
struct mcam_camera *cam = priv;
+ if (reg->reg > cam->regs_size - 4)
+ return -EINVAL;
reg->val = mcam_reg_read(cam, reg->reg);
reg->size = 4;
return 0;
@@ -1414,6 +1416,8 @@ static int mcam_vidioc_s_register(struct file *file, void *priv,
{
struct mcam_camera *cam = priv;
+ if (reg->reg > cam->regs_size - 4)
+ return -EINVAL;
mcam_reg_write(cam, reg->reg, reg->val);
return 0;
}