Message ID | 20200918124533.3487701-4-hch@lst.de |
---|---|
State | New |
Headers | show |
Series | [1/9] kernel: add a PF_FORCE_COMPAT flag | expand |
On Fri, Sep 18, 2020 at 02:45:27PM +0200, Christoph Hellwig wrote: > } > - if (type >= 0 > - && unlikely(!access_ok(buf, len))) { > + if (type != CHECK_IOVEC_ONLY && unlikely(!access_ok(buf, len))) { drop the unlikely() at the same time? if it's really advantageous, that should be embedded in the access_ok macro.
Looks good,
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
diff --git a/fs/read_write.c b/fs/read_write.c index 5db58b8c78d0dd..f153116bc5399b 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -840,8 +840,7 @@ ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector, ret = -EINVAL; goto out; } - if (type >= 0 - && unlikely(!access_ok(buf, len))) { + if (type != CHECK_IOVEC_ONLY && unlikely(!access_ok(buf, len))) { ret = -EFAULT; goto out; } @@ -911,7 +910,7 @@ ssize_t compat_rw_copy_check_uvector(int type, } if (len < 0) /* size_t not fitting in compat_ssize_t .. */ goto out; - if (type >= 0 && + if (type != CHECK_IOVEC_ONLY && !access_ok(compat_ptr(buf), len)) { ret = -EFAULT; goto out;
Explicitly check for the magic value insted of implicitly relying on its number representation. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/read_write.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)