Re: [PATCH v1] device property: Avoid NULL pointer dereference in device_get_next_child_node()

From: Maxim Levitsky
Date: Fri Jul 17 2020 - 10:05:34 EST


On Thu, 2020-07-16 at 21:27 +0300, Andy Shevchenko wrote:
> When we have no primary fwnode or when it's a software node, we may end up
> in the situation when fwnode is a NULL pointer. There is no point to look for
> secondary fwnode in such case. Add a necessary check to a condition.
>
> Fixes: 114dbb4fa7c4 ("drivers property: When no children in primary, try secondary")
> Reported-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx>
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

Tested-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx>

Best regards,
Maxim Levitsky

> ---
> drivers/base/property.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/base/property.c b/drivers/base/property.c
> index 1e6d75e65938..d58aa98fe964 100644
> --- a/drivers/base/property.c
> +++ b/drivers/base/property.c
> @@ -721,7 +721,7 @@ struct fwnode_handle *device_get_next_child_node(struct device *dev,
> return next;
>
> /* When no more children in primary, continue with secondary */
> - if (!IS_ERR_OR_NULL(fwnode->secondary))
> + if (fwnode && !IS_ERR_OR_NULL(fwnode->secondary))
> next = fwnode_get_next_child_node(fwnode->secondary, child);
>
> return next;