mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-31 16:38:12 +00:00
fs/nilfs2: use standard array-copy-function
ioctl.c utilizes memdup_user() to copy a userspace array. An overflow check is performed manually before the function's invocation. The new function memdup_array_user() standardizes copying userspace arrays, thus, improving readability by making it more clear that an array is being copied. Additionally, it also performs an overflow check. Remove the (now redundant) manual overflow-check and replace memdup_user() with memdup_array_user(). In addition, improve the grammar of the comment above memdup_array_user(). Link: https://lkml.kernel.org/r/20231106224416.3055-1-konishi.ryusuke@gmail.com Signed-off-by: Philipp Stanner <pstanner@redhat.com> Link: https://lkml.kernel.org/r/20231103184831.99406-2-pstanner@redhat.com Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com> Suggested-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
61a7a5e25f
commit
44e3876d26
1 changed files with 4 additions and 6 deletions
|
@ -872,16 +872,14 @@ static int nilfs_ioctl_clean_segments(struct inode *inode, struct file *filp,
|
|||
nsegs = argv[4].v_nmembs;
|
||||
if (argv[4].v_size != argsz[4])
|
||||
goto out;
|
||||
if (nsegs > UINT_MAX / sizeof(__u64))
|
||||
goto out;
|
||||
|
||||
/*
|
||||
* argv[4] points to segment numbers this ioctl cleans. We
|
||||
* use kmalloc() for its buffer because memory used for the
|
||||
* segment numbers is enough small.
|
||||
* use kmalloc() for its buffer because the memory used for the
|
||||
* segment numbers is small enough.
|
||||
*/
|
||||
kbufs[4] = memdup_user((void __user *)(unsigned long)argv[4].v_base,
|
||||
nsegs * sizeof(__u64));
|
||||
kbufs[4] = memdup_array_user((void __user *)(unsigned long)argv[4].v_base,
|
||||
nsegs, sizeof(__u64));
|
||||
if (IS_ERR(kbufs[4])) {
|
||||
ret = PTR_ERR(kbufs[4]);
|
||||
goto out;
|
||||
|
|
Loading…
Reference in a new issue