RE: question about drivers/phy/renesas/phy-rcar-gen2.c

From: Yoshihiro Shimoda
Date: Tue Feb 26 2019 - 03:54:30 EST


Hello,
(Sergei made this code, so I added his email as CC)

I'm sorry for the delayed response.

> From: Julia Lawall, Sent: Sunday, February 3, 2019 4:03 PM
>
> Hello,
>
> I was wondering whether phy-rcar-gen2.c would use dynamically allocated
> device nodes?

I'm sorry, but what is "dynamically allocated device nodes"?

Best regards,
Yoshihiro Shimoda

> If so, it looks like the following code could cause a
> use-after-free, due to not incrementing th reference count:
>
> for_each_child_of_node(dev->of_node, np) {
> struct rcar_gen2_channel *channel = drv->channels + i;
> u32 channel_num;
> int error, n;
>
> channel->of_node = np;
> ...
> }
>
> On the other hand, if the reference cound it incrememnted, preventing
> memory leaks in the case where the probe function fails would entail some
> complex rewriting of the code, so I thought it would be better to ask
> first.
>
> thanks,
> julia