staging: ozwpan: prevent overflow in oz_cdev_write()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 29 Oct 2013 19:07:47 +0000 (22:07 +0300)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 30 Oct 2013 19:24:49 +0000 (12:24 -0700)
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>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/staging/ozwpan/ozcdev.c

index 6ccb64f..6ce0af9 100644 (file)
@@ -155,6 +155,9 @@ static ssize_t oz_cdev_write(struct file *filp, const char __user *buf,
        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)