Re: [PATCH] md: fix an incorrect NULL check in md_reload_sb

From: Xiaomeng Tong
Date: Fri Apr 08 2022 - 04:47:56 EST


On Thu, 7 Apr 2022 17:37:55 -0700, Song Liu wrote:
> On Mon, Mar 28, 2022 at 1:06 AM Xiaomeng Tong <xiam0nd.tong@xxxxxxxxx> wrote:
> >
> > The bug is here:
> > if (!rdev || rdev->desc_nr != nr) {
> >
> > The list iterator value 'rdev' will *always* be set and non-NULL
> > by rdev_for_each_rcu(), so it is incorrect to assume that the
> > iterator value will be NULL if the list is empty or no element
> > found (In fact, it will be a bogus pointer to an invalid struct
> > object containing the HEAD). Otherwise it will bypass the check
> > and lead to invalid memory access passing the check.
> >
> > To fix the bug, use a new variable 'iter' as the list iterator,
> > while using the original variable 'pdev' as a dedicated pointer to
> > point to the found element.
> >
> > Cc: stable@xxxxxxxxxxxxxxx
> > Fixes: 70bcecdb1534 ("amd-cluster: Improve md_reload_sb to be less error prone")
>
> s/amd-cluster/md-cluster/

Have fixed it in PATCH v3, please check it. Thank you.

--
Xiaomeng Tong