of: handle NULL node in next_child iterators
authorFlorian Fainelli <f.fainelli@gmail.com>
Wed, 28 May 2014 17:39:02 +0000 (10:39 -0700)
committerRob Herring <robh@kernel.org>
Wed, 4 Jun 2014 09:46:01 +0000 (04:46 -0500)
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>
drivers/of/base.c

index e67b308819c903c1dd04206d3d71c4d5ccffe1f4..567e6e1b7921a4aecf705e77897f993f092ea29b 100644 (file)
@@ -700,6 +700,9 @@ static struct device_node *__of_get_next_child(const struct device_node *node,
 {
        struct device_node *next;
 
+       if (!node)
+               return NULL;
+
        next = prev ? prev->sibling : node->child;
        for (; next; next = next->sibling)
                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;
        unsigned long flags;
 
+       if (!node)
+               return NULL;
+
        raw_spin_lock_irqsave(&devtree_lock, flags);
        next = prev ? prev->sibling : node->child;
        for (; next; next = next->sibling) {