lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <PSAPR06MB40216A2C236343B2300EFC48DF9A9@PSAPR06MB4021.apcprd06.prod.outlook.com>
Date:   Wed, 17 Nov 2021 07:57:39 +0000
From:   赵军奎 <bernard@...o.com>
To:     Song Liu <song@...nel.org>
CC:     linux-raid <linux-raid@...r.kernel.org>,
        open list <linux-kernel@...r.kernel.org>
Subject: 答复: [PATCH] drivers/md: fix potential memleak



-----邮件原件-----
发件人: bernard@...o.com <bernard@...o.com> 代表 Song Liu
发送时间: 2021年11月17日 15:06
收件人: 赵军奎 <bernard@...o.com>
抄送: linux-raid <linux-raid@...r.kernel.org>; open list <linux-kernel@...r.kernel.org>
主题: Re: [PATCH] drivers/md: fix potential memleak

On Sun, Nov 14, 2021 at 7:18 PM Bernard Zhao <bernard@...o.com> wrote:
>
> In function get_bitmap_from_slot, when md_bitmap_create failed, 
> md_bitmap_destroy must be called to do clean up.

>Could you please explain which variable(s) need clean up?

Hi Song:
The follow is the function md_bitmap_create`s annotation :
/*
 * initialize the bitmap structure
 * if this returns an error, bitmap_destroy must be called to do clean up
 * once mddev->bitmap is set
 */
struct bitmap *md_bitmap_create(struct mddev *mddev, int slot)

It is mentioned that bitmap_destroy needs to be called to do clean up.
Other functions which called md_bitmap_create in the same file also called md_bitmap_create to clean up(in the error branch), but this one didn`t.
I am not sure if there is some gap?
Thanks!
BR//Bernard

>Thanks,
>Song

>
> Signed-off-by: Bernard Zhao <bernard@...o.com>
> ---
>  drivers/md/md-bitmap.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c index 
> bfd6026d7809..a227bd0b9301 100644
> --- a/drivers/md/md-bitmap.c
> +++ b/drivers/md/md-bitmap.c
> @@ -1961,6 +1961,7 @@ struct bitmap *get_bitmap_from_slot(struct mddev *mddev, int slot)
>         bitmap = md_bitmap_create(mddev, slot);
>         if (IS_ERR(bitmap)) {
>                 rv = PTR_ERR(bitmap);
> +               md_bitmap_destroy(mddev)
>                 return ERR_PTR(rv);
>         }
>
> --
> 2.33.1
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ