<snip>
>
> Actually to simplify further:
>
> diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
> index 7a6974e877f4..bbda55d41a06 100644
> --- a/fs/btrfs/ioctl.c
> +++ b/fs/btrfs/ioctl.c
> @@ -4353,6 +4353,7 @@ static long btrfs_ioctl_balance(struct file *file,
> void __user *arg)
> bargs = memdup_user(arg, sizeof(*bargs));
> if (IS_ERR(bargs)) {
> ret = PTR_ERR(bargs);
> + bargs = NULL;
> goto out;
> }
Unf, this also leads to the double free ...
<snip>
On Thu, Apr 21, 2022 at 02:34:47PM +0300, Nikolay Borisov wrote:
> <snip>
>
> >
> > Actually to simplify further:
> >
> > diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
> > index 7a6974e877f4..bbda55d41a06 100644
> > --- a/fs/btrfs/ioctl.c
> > +++ b/fs/btrfs/ioctl.c
> > @@ -4353,6 +4353,7 @@ static long btrfs_ioctl_balance(struct file *file,
> > void __user *arg)
> > ??????? bargs = memdup_user(arg, sizeof(*bargs));
> > ??????? if (IS_ERR(bargs)) {
> > ??????????????? ret = PTR_ERR(bargs);
> > +?????????????? bargs = NULL;
> > ??????????????? goto out;
> > ??????? }
>
> Unf, this also leads to the double free ...
Please send me an incremental diff that I can fold to the patch, thanks.