summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2013-10-29 22:07:47 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-11-13 12:01:49 +0900
commit8c4ff75c8345b3463a4a76af942ee2d401ccf2e2 (patch)
treea57fccdf48dd5dfc8e15618b6c396fed9c9342b8
parent827a291cb0f3979c05f985fd553e1795d8fe3818 (diff)
downloadlwn-8c4ff75c8345b3463a4a76af942ee2d401ccf2e2.tar.gz
lwn-8c4ff75c8345b3463a4a76af942ee2d401ccf2e2.zip
staging: ozwpan: prevent overflow in oz_cdev_write()
commit c2c65cd2e14ada6de44cb527e7f1990bede24e15 upstream. We need to check "count" so we don't overflow the ei->data buffer. Reported-by: Nico Golde <nico@ngolde.de> Reported-by: Fabian Yamaguchi <fabs@goesec.de> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/ozwpan/ozcdev.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/staging/ozwpan/ozcdev.c b/drivers/staging/ozwpan/ozcdev.c
index 1c380d687963..1c9245119567 100644
--- a/drivers/staging/ozwpan/ozcdev.c
+++ b/drivers/staging/ozwpan/ozcdev.c
@@ -153,6 +153,9 @@ ssize_t oz_cdev_write(struct file *filp, const char __user *buf, size_t count,
struct oz_app_hdr *app_hdr;
struct oz_serial_ctx *ctx;
+ if (count > sizeof(ei->data) - sizeof(*elt) - sizeof(*app_hdr))
+ return -EINVAL;
+
spin_lock_bh(&g_cdev.lock);
pd = g_cdev.active_pd;
if (pd)