Hi Kangjie,

On Mon, Mar 11, 2019 at 8:01 AM Kangjie Lu <k...@umn.edu> wrote:
> In case of_get_phy_mode fails, the fix returns NULL to avoid
> the NULL pointer dereference.
>
> Signed-off-by: Kangjie Lu <k...@umn.edu>

Thanks for your patch!

> --- a/drivers/net/ethernet/renesas/sh_eth.c
> +++ b/drivers/net/ethernet/renesas/sh_eth.c
> @@ -3187,6 +3187,8 @@ static struct sh_eth_plat_data *sh_eth_parse_dt(struct 
> device *dev)
>                 return NULL;
>
>         pdata->phy_interface = of_get_phy_mode(np);
> +       if (unlikely(!pdata->phy_interface))
> +               return NULL;

of_get_phy_mode() does not return a pointer, but a phy mode index.
Hence zero is a valid value.

So I'm wondering where is the potential NULL pointer dereference?

Perhaps we do need to check for negative error codes?
Or is this already handled later, by {of_,}phy_connect()?

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

Reply via email to