On Sat, Nov 27, 2021 at 07:05:39PM +0100, Andreas Gruenbacher wrote:
quoted hunk ↗ jump to hunk
Maybe you want to add this though:
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -2202,3 +2202,3 @@ static noinline int search_ioctl(struct inode *inode,
unsigned long sk_offset = 0;
- char __user *fault_in_addr;
+ char __user *fault_in_addr, *end;
@@ -2230,6 +2230,6 @@ static noinline int search_ioctl(struct inode *inode,
fault_in_addr = ubuf;
+ end = ubuf + *buf_size;
while (1) {
ret = -EFAULT;
- if (fault_in_writeable(fault_in_addr,
- *buf_size - (fault_in_addr - ubuf)))
+ if (fault_in_writeable(fault_in_addr, end - fault_in_addr))
break;
It looks like *buf_size is updated inside copy_to_sk(), so I'll move the
end update inside the loop.
--
Catalin
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel