From: Liam R. Howlett Date: Tue, 11 Apr 2023 15:10:43 +0000 (-0400) Subject: maple_tree: fix potential rcu issue X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=f41e9e69277b08db8eab5f23715f17eb34418953;p=users%2Fjedix%2Flinux-maple.git maple_tree: fix potential rcu issue commit 65be6f058b0eba98dc6c6f197ea9f62c9b6a519f upstream. Ensure the node isn't dead after reading the node end. Link: https://lkml.kernel.org/r/20230120162650.984577-3-Liam.Howlett@oracle.com Cc: Fixes: 54a611b60590 ("Maple Tree: add new data structure") Signed-off-by: Liam R. Howlett Signed-off-by: Greg Kroah-Hartman --- diff --git a/lib/maple_tree.c b/lib/maple_tree.c index bf5eefde92b7..f8e1e85dd7a6 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4650,13 +4650,13 @@ static inline void *mas_next_nentry(struct ma_state *mas, pivots = ma_pivots(node, type); slots = ma_slots(node, type); mas->index = mas_safe_min(mas, pivots, mas->offset); + count = ma_data_end(node, type, pivots, mas->max); if (ma_dead_node(node)) return NULL; if (mas->index > max) return NULL; - count = ma_data_end(node, type, pivots, mas->max); if (mas->offset > count) return NULL;