mirror of
https://github.com/torvalds/linux.git
synced 2024-11-01 04:53:36 +01:00
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@oracle.com> Cc: Jiri Kosina <jkosina@suse.cz> Cc: Masanari Iida <standby24x7@gmail.com> Cc: Alan Cox <alan@linux.intel.com> Cc: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
79bae42d51
commit
9151b3982d
1 changed files with 10 additions and 0 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue