mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 05:55:44 +02:00
staging: lustre: check for integer overflow
In ll_ioctl_fiemap(), a user-supplied value is used to calculate a length of a buffer which is later allocated with user data. Signed-off-by: Vitaly Osipov <vitaly.osipov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
37aa48368f
commit
7bc3dfa37b
|
|
@ -1829,6 +1829,10 @@ static int ll_ioctl_fiemap(struct inode *inode, unsigned long arg)
|
|||
if (get_user(extent_count,
|
||||
&((struct ll_user_fiemap __user *)arg)->fm_extent_count))
|
||||
return -EFAULT;
|
||||
|
||||
if (extent_count >=
|
||||
(SIZE_MAX - sizeof(*fiemap_s)) / sizeof(struct ll_fiemap_extent))
|
||||
return -EINVAL;
|
||||
num_bytes = sizeof(*fiemap_s) + (extent_count *
|
||||
sizeof(struct ll_fiemap_extent));
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user