Re: suspected null-pointer-reference problem for to_swnode

From: andriy.shevchenko@xxxxxxxxxxxxxxx
Date: Mon Oct 25 2021 - 12:48:22 EST


On Mon, Oct 25, 2021 at 02:03:51PM +0000, YE Chengfeng wrote:
> Hi,
>
> https://github.com/torvalds/linux/blob/master/drivers/base/swnode.c#L405
>
> We notice that the return pointer of to_swnode is null check in some case, while in some case is not. For example, at line 416, the return pointer is null-check, but in line 405 is not. We want to know whether it would be a potential null pointer dereference problem, in the case that null-check is missing.
>
> This problem is detected by our experimental static analysis tool, we are not familiar with the source code and it could just be a false positive. We send this email in case this is a real problem. Would you like to spare some time to have a look at it?

Thank you for the interest to our code!

Line #405 refers to software node operations and it means it won't be ever
called if there is no swnode behind it, means it's backed with properties.
If you think it will be a NULL pointer there, please describe in detail
(with a traceback included) when and how it happens, because such bugs are
serious.

Line #416 refers to the same stage when options are defined and we know we
have been called against swnode. Seems to me like a dead code brought from
day 1 by the commit bc0500c1e43d ("device property: Add fwnode_get_name
for returning the name of a node").

Sakari?

--
With Best Regards,
Andy Shevchenko