[PATCH] ubifs: Remove a redundant null check on pointer lp

Dan Carpenter dan.carpenter at oracle.com
Mon Jun 21 23:44:19 PDT 2021


On Tue, Jun 22, 2021 at 10:38:52AM +0800, Zhihao Cheng wrote:
> 在 2021/6/21 23:22, Colin King 写道:
> > From: Colin Ian King <colin.king at canonical.com>
> > 
> > An earlier fix to replace an IS_ERR check on lp with a null check
> > on lp didn't remove a following null check on lp. The second null
> > check is redundant and can be removed.
> > 
> > Addresses-Coverity: ("Logically dead code")
> > Fixes: c770cd5190ba ("ubifs: fix an IS_ERR() vs NULL check")
> > Signed-off-by: Colin Ian King <colin.king at canonical.com>
> > ---
> >   fs/ubifs/gc.c | 2 --
> >   1 file changed, 2 deletions(-)
> > 
> > diff --git a/fs/ubifs/gc.c b/fs/ubifs/gc.c
> > index 7cc22d7317ea..465beea52176 100644
> > --- a/fs/ubifs/gc.c
> > +++ b/fs/ubifs/gc.c
> > @@ -899,8 +899,6 @@ int ubifs_gc_start_commit(struct ubifs_info *c)
> >   			err = -ENOMEM;
> >   			goto out;
> >   		}
> Hi Colin,
> I just found out about it today thanks to your patch. Commit c770cd5190ba
> ("ubifs: fix an IS_ERR() vs NULL check") did import a new problem that
> ubifs_gc_start_commit() may return -ENOMEM while syncing fs.
> I guess ubifs_fast_find_frdi_idx() return NULL pointer is the termination
> condition in while-loop, which means we cannot get a freeable index LEB in
> ubifs_gc_start_commit().

Ugh...  I'm so sorry.  My patch was clearly wrong.  I've tried before to
add a Smatch check which warns about duplicative NULL checks, but I
think this gives me a new idea to try.  Hopefully, it will prevent this
in the future.

Yeah, and it's my check which needs to be deleted, not the other one.

regards,
dan carpenter




More information about the linux-mtd mailing list