Messages in this thread | | | From | Xiaomeng Tong <> | Subject | Re: [PATCH] md: fix an incorrect NULL check in md_reload_sb | Date | Fri, 8 Apr 2022 16:47:40 +0800 |
| |
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@gmail.com> 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@vger.kernel.org > > 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
| |