[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20130301052155.GC2669@longonot.mountain>
Date: Fri, 1 Mar 2013 08:21:55 +0300
From: Dan Carpenter <dan.carpenter@...cle.com>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: Jiri Kosina <jkosina@...e.cz>,
Masanari Iida <standby24x7@...il.com>,
Alan Cox <alan@...ux.intel.com>, linux-kernel@...r.kernel.org,
kernel-janitors@...r.kernel.org
Subject: [patch] i2o: check copy_from_user() size parameter
Limit the size of the copy so we don't corrupt memory. Hopefully
this can only be called by root, but fixing this makes the static
checkers happier.
Signed-off-by: Dan Carpenter <dan.carpenter@...cle.com>
diff --git a/drivers/message/i2o/i2o_config.c b/drivers/message/i2o/i2o_config.c
index 5451bef..a60c188 100644
--- a/drivers/message/i2o/i2o_config.c
+++ b/drivers/message/i2o/i2o_config.c
@@ -687,6 +687,11 @@ static int i2o_cfg_passthru32(struct file *file, unsigned cmnd,
}
size = size >> 16;
size *= 4;
+ if (size > sizeof(rmsg)) {
+ rcode = -EINVAL;
+ goto sg_list_cleanup;
+ }
+
/* Copy in the user's I2O command */
if (copy_from_user(rmsg, user_msg, size)) {
rcode = -EFAULT;
@@ -922,6 +927,11 @@ static int i2o_cfg_passthru(unsigned long arg)
}
size = size >> 16;
size *= 4;
+ if (size > sizeof(rmsg)) {
+ rcode = -EFAULT;
+ goto sg_list_cleanup;
+ }
+
/* Copy in the user's I2O command */
if (copy_from_user(rmsg, user_msg, size)) {
rcode = -EFAULT;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists