mirror of
https://github.com/torvalds/linux.git
synced 2024-12-11 21:52:04 +00:00
of: handle NULL node in next_child iterators
Add an early check for the node argument in __of_get_next_child and of_get_next_available_child() to avoid dereferencing a NULL node pointer a few lines after. CC: Daniel Mack <zonque@gmail.com> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Grant Likely <grant.likely@linaro.org>
This commit is contained in:
parent
64c5c75908
commit
43cb436787
@ -700,6 +700,9 @@ static struct device_node *__of_get_next_child(const struct device_node *node,
|
|||||||
{
|
{
|
||||||
struct device_node *next;
|
struct device_node *next;
|
||||||
|
|
||||||
|
if (!node)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
next = prev ? prev->sibling : node->child;
|
next = prev ? prev->sibling : node->child;
|
||||||
for (; next; next = next->sibling)
|
for (; next; next = next->sibling)
|
||||||
if (of_node_get(next))
|
if (of_node_get(next))
|
||||||
@ -746,6 +749,9 @@ struct device_node *of_get_next_available_child(const struct device_node *node,
|
|||||||
struct device_node *next;
|
struct device_node *next;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
|
if (!node)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
raw_spin_lock_irqsave(&devtree_lock, flags);
|
raw_spin_lock_irqsave(&devtree_lock, flags);
|
||||||
next = prev ? prev->sibling : node->child;
|
next = prev ? prev->sibling : node->child;
|
||||||
for (; next; next = next->sibling) {
|
for (; next; next = next->sibling) {
|
||||||
|
Loading…
Reference in New Issue
Block a user