On Tue, Nov 16, 2021 at 9:57 PM 赵军奎 <bernard@xxxxxxxx> wrote: > > > > -----邮件原件----- > 发件人: bernard@xxxxxxxx <bernard@xxxxxxxx> 代表 Song Liu > 发送时间: 2021年11月17日 15:06 > 收件人: 赵军奎 <bernard@xxxxxxxx> > 抄送: linux-raid <linux-raid@xxxxxxxxxxxxxxx>; open list <linux-kernel@xxxxxxxxxxxxxxx> > 主题: Re: [PATCH] drivers/md: fix potential memleak > > On Sun, Nov 14, 2021 at 7:18 PM Bernard Zhao <bernard@xxxxxxxx> 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