Messages in this thread | | | From | Song Liu <> | Date | Fri, 19 Nov 2021 21:23:28 -1000 | Subject | Re: [PATCH] drivers/md: fix potential memleak |
| |
On Tue, Nov 16, 2021 at 9:57 PM 赵军奎 <bernard@vivo.com> wrote: > > > > -----邮件原件----- > 发件人: bernard@vivo.com <bernard@vivo.com> 代表 Song Liu > 发送时间: 2021年11月17日 15:06 > 收件人: 赵军奎 <bernard@vivo.com> > 抄送: linux-raid <linux-raid@vger.kernel.org>; open list <linux-kernel@vger.kernel.org> > 主题: Re: [PATCH] drivers/md: fix potential memleak > > On Sun, Nov 14, 2021 at 7:18 PM Bernard Zhao <bernard@vivo.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?
I don't think we need to call md_bitmap_destroy in some of these cases. Please read the code carefully can decide where these are needed based on the logic of the code.
Thanks, Song
| |