]> git.hungrycats.org Git - linux/commitdiff
cx24117: fix a buffer overflow when checking userspace params
authorMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 28 Apr 2015 22:03:59 +0000 (19:03 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Aug 2015 16:29:53 +0000 (09:29 -0700)
commit 82e3b88b679049f043fe9b03991d6d66fc0a43c8 upstream.

The maximum size for a DiSEqC command is 6, according to the
userspace API. However, the code allows to write up much more values:
drivers/media/dvb-frontends/cx24116.c:983 cx24116_send_diseqc_msg() error: buffer overflow 'd->msg' 6 <= 23

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/dvb-frontends/cx24117.c

index a6c3c9e2e89772ffcee9d5ed3baaa1ae980b83e5..d2eab0676d3055907a62594b15c910b99cddda8f 100644 (file)
@@ -1043,7 +1043,7 @@ static int cx24117_send_diseqc_msg(struct dvb_frontend *fe,
        dev_dbg(&state->priv->i2c->dev, ")\n");
 
        /* Validate length */
-       if (d->msg_len > 15)
+       if (d->msg_len > sizeof(d->msg))
                return -EINVAL;
 
        /* DiSEqC message */