RE: [PATCH 2/2] tty: serial: fsl_lpuart: fix the potential bug of dereference null return value

From: Sherry Sun
Date: Mon Apr 26 2021 - 08:09:52 EST


Hi Fabio,

> Hi Sherry,
>
> On Mon, Apr 26, 2021 at 8:39 AM Sherry Sun <sherry.sun@xxxxxxx> wrote:
>
> > > > + if (!sdata)
> > > > + return -ENODEV;
> > >
> > > How can sdata be NULL?
> >
> > Is it possible that a case forgot to set sdata? Then the value will be NULL,
> such as { .compatible = "fsl,imx8qxp-lpuart", }.
> > So I added the patch to avoid the kernel crash when run to sdata->reg_off
> directly. But I am not sure does it make sense.
>
> sdata comes directly from of_device_get_match_data().
>
> This driver only runs on DT platforms and the only way of being probed is
> when a compatible string matches, so it is not possible that sdata can be
> NULL.

Thanks for your reply.
I guess you mean the of_match_table will not be NULL since it contains compatible, right?
But for the lpuart data -- struct lpuart_soc_data, won’t it meet the NULL case? such as { .compatible = "fsl,imx8qxp-lpuart", }.
Here of_device_id won’t be NULL, but lpuart_soc_data Is NULL.

Best regards
Sherry