radix-tree: Fix UBSAN warning
get_slot_offset() can be called with a NULL 'parent' argument. In this case, the calculated value will not be used, but calculating it is undefined. Rather than fixing the caller (__radix_tree_delete) to not call get_slot_offset(), make get_slot_offset() robust against being called with a NULL parent. Signed-off-by: Matthew Wilcox <willy@infradead.org>
This commit is contained in:
Родитель
d1c0d5e3c6
Коммит
76f070b413
|
@ -120,7 +120,7 @@ bool is_sibling_entry(const struct radix_tree_node *parent, void *node)
|
|||
static inline unsigned long
|
||||
get_slot_offset(const struct radix_tree_node *parent, void __rcu **slot)
|
||||
{
|
||||
return slot - parent->slots;
|
||||
return parent ? slot - parent->slots : 0;
|
||||
}
|
||||
|
||||
static unsigned int radix_tree_descend(const struct radix_tree_node *parent,
|
||||
|
|
Загрузка…
Ссылка в новой задаче