diff options
author | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-04-28 19:03:59 -0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2015-08-03 09:29:53 -0700 |
commit | 6b9bd62380a21ac2c52bf26109af17873fd1c08e (patch) | |
tree | 856d6b2be9dfdd7003770c6fceaf3f7ff85b0842 | |
parent | 83a863f62a104209eb90fc1517011ac86d44ae05 (diff) | |
download | lwn-6b9bd62380a21ac2c52bf26109af17873fd1c08e.tar.gz lwn-6b9bd62380a21ac2c52bf26109af17873fd1c08e.zip |
cx24117: fix a buffer overflow when checking userspace params
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>
-rw-r--r-- | drivers/media/dvb-frontends/cx24117.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/media/dvb-frontends/cx24117.c b/drivers/media/dvb-frontends/cx24117.c index a6c3c9e2e897..d2eab0676d30 100644 --- a/drivers/media/dvb-frontends/cx24117.c +++ b/drivers/media/dvb-frontends/cx24117.c @@ -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 */ |