From: Boris Burkov <boris@bur.io>
To: Zixuan Fu <r33s3n6@gmail.com>
Cc: clm@fb.com, josef@toxicpanda.com, dsterba@suse.com,
linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org,
baijiaju1990@gmail.com, TOTE Robot <oslab@tsinghua.edu.cn>
Subject: Re: [PATCH] fs: btrfs: fix possible memory leaks in btrfs_get_dev_args_from_path()
Date: Mon, 15 Aug 2022 14:13:28 -0700 [thread overview]
Message-ID: <Yvq2+EWVBc5L1LZH@zen> (raw)
In-Reply-To: <20220815151606.3479183-1-r33s3n6@gmail.com>
On Mon, Aug 15, 2022 at 11:16:06PM +0800, Zixuan Fu wrote:
> In btrfs_get_dev_args_from_path(), btrfs_get_bdev_and_sb() can fail if the
> path is invalid. In this case, btrfs_get_dev_args_from_path() returns
> directly without freeing args->uuid and args->fsid allocated before, which
> causes memory leaks.
>
> To fix these possible leaks, when btrfs_get_bdev_and_sb() fails,
> btrfs_put_dev_args_from_path() is called to clean up the memory.
>
> Fixes: faa775c41d655 ("btrfs: add a btrfs_get_dev_args_from_path helper")
> Reported-by: TOTE Robot <oslab@tsinghua.edu.cn>
> Signed-off-by: Zixuan Fu <r33s3n6@gmail.com>
Reviewed-by: Boris Burkov <boris@bur.io>
> ---
> fs/btrfs/volumes.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
> index 272901514b0c..064ab2a79c80 100644
> --- a/fs/btrfs/volumes.c
> +++ b/fs/btrfs/volumes.c
> @@ -2345,8 +2345,11 @@ int btrfs_get_dev_args_from_path(struct btrfs_fs_info *fs_info,
>
> ret = btrfs_get_bdev_and_sb(path, FMODE_READ, fs_info->bdev_holder, 0,
> &bdev, &disk_super);
> - if (ret)
> + if (ret) {
> + btrfs_put_dev_args_from_path(args);
> return ret;
> + }
> +
> args->devid = btrfs_stack_device_id(&disk_super->dev_item);
> memcpy(args->uuid, disk_super->dev_item.uuid, BTRFS_UUID_SIZE);
> if (btrfs_fs_incompat(fs_info, METADATA_UUID))
> --
> 2.25.1
>
next prev parent reply other threads:[~2022-08-16 1:21 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-15 15:16 [PATCH] fs: btrfs: fix possible memory leaks in btrfs_get_dev_args_from_path() Zixuan Fu
2022-08-15 21:13 ` Boris Burkov [this message]
2022-08-17 14:42 ` David Sterba
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Yvq2+EWVBc5L1LZH@zen \
--to=boris@bur.io \
--cc=baijiaju1990@gmail.com \
--cc=clm@fb.com \
--cc=dsterba@suse.com \
--cc=josef@toxicpanda.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oslab@tsinghua.edu.cn \
--cc=r33s3n6@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.