mirror of
https://github.com/torvalds/linux
synced 2024-09-06 18:01:05 +00:00
[PATCH] undo do_readv_writev() behavior change
Bugme bug 4326: http://bugme.osdl.org/show_bug.cgi?id=4326 reports: executing the systemcall readv with Bad argument ->len == -1) it gives out error EFAULT instead of EINVAL Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
22a685d09b
commit
1f08ad0237
|
@ -467,10 +467,10 @@ static ssize_t do_readv_writev(int type, struct file *file,
|
|||
void __user *buf = iov[seg].iov_base;
|
||||
ssize_t len = (ssize_t)iov[seg].iov_len;
|
||||
|
||||
if (unlikely(!access_ok(vrfy_dir(type), buf, len)))
|
||||
goto Efault;
|
||||
if (len < 0) /* size_t not fitting an ssize_t .. */
|
||||
goto out;
|
||||
if (unlikely(!access_ok(vrfy_dir(type), buf, len)))
|
||||
goto Efault;
|
||||
tot_len += len;
|
||||
if ((ssize_t)tot_len < 0) /* maths overflow on the ssize_t */
|
||||
goto out;
|
||||
|
|
Loading…
Reference in a new issue