X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=fs%2Fread_write.c;h=a091ee4f430df6cc83317b59c4a2fc363c005080;hb=312f5726055534be1dc9dd369be13aabd2943fcb;hp=563abd09b5c84b882cbe6f47e56d05e80e5db4b6;hpb=31151ba2cef171344beac254e65bd7e00138bb0d;p=linux-2.6-omap-h63xx.git diff --git a/fs/read_write.c b/fs/read_write.c index 563abd09b5c..a091ee4f430 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -188,7 +188,7 @@ int rw_verify_area(int read_write, struct file *file, loff_t *ppos, size_t count struct inode *inode; loff_t pos; - if (unlikely(count > file->f_maxcount)) + if (unlikely(count > INT_MAX)) goto Einval; pos = *ppos; if (unlikely((pos < 0) || (loff_t) (pos + count) < 0)) @@ -497,6 +497,9 @@ static ssize_t do_readv_writev(int type, struct file *file, } ret = rw_verify_area(type, file, pos, tot_len); + if (ret) + goto out; + ret = security_file_permission(file, type == READ ? MAY_READ : MAY_WRITE); if (ret) goto out;