Re: [PATCH 4/6] xfs: use memdup_user()

Christoph Hellwig
2009-04-08T13:23:29Z

On Wed, Apr 08, 2009 at 03:08:04PM +0800, Li Zefan wrote:
> Remove open-coded memdup_user()
>
> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
> ---
> fs/xfs/linux-2.6/xfs_ioctl.c | 23 +++++++----------------
> fs/xfs/linux-2.6/xfs_ioctl32.c | 12 ++++--------
> 2 files changed, 11 insertions(+), 24 deletions(-)
>
> diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c
> index d0b4994..34eaab6 100644
> --- a/fs/xfs/linux-2.6/xfs_ioctl.c
> +++ b/fs/xfs/linux-2.6/xfs_ioctl.c
> @@ -489,17 +489,12 @@ xfs_attrmulti_attr_set(
> if (len > XATTR_SIZE_MAX)
> return EINVAL;
>
> - kbuf = kmalloc(len, GFP_KERNEL);
> - if (!kbuf)
> - return ENOMEM;
> -
> - if (copy_from_user(kbuf, ubuf, len))
> - goto out_kfree;
> + kbuf = memdup_user(ubuf, len);
> + if (IS_ERR(kbuf))
> + return PTR_ERR(kbuf);

wouldn't NULL be a better error return for this kind of interface,
matching kmalloc?

Otherwise the patch looks good to me.

Reviewed-by: Christoph Hellwig <hch@lst.de>