Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
md: fix an incorrect NULL check in md_reload_sb
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: [email protected] Fixes: 70bcecd ("md-cluster: Improve md_reload_sb to be less error prone") Signed-off-by: Xiaomeng Tong <[email protected]> Signed-off-by: Song Liu <[email protected]>
- Loading branch information