2019-03-18 23:58:00

by Aditya Pakki

[permalink] [raw]
Subject: [PATCH] usb: usb251xb: fix to avoid potential NULL pointer dereference

of_match_device in usb251xb_probe can fail and returns a NULL pointer.
The patch avoids a potential NULL pointer dereference in this scenario.

Signed-off-by: Aditya Pakki <[email protected]>
---
drivers/usb/misc/usb251xb.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/usb/misc/usb251xb.c b/drivers/usb/misc/usb251xb.c
index 4d72b7d1d383..fe5266dc8864 100644
--- a/drivers/usb/misc/usb251xb.c
+++ b/drivers/usb/misc/usb251xb.c
@@ -612,6 +612,8 @@ static int usb251xb_probe(struct usb251xb *hub)
dev);
int err;

+ if (!of_id)
+ return -ENODEV;
if (np) {
err = usb251xb_get_ofdata(hub,
(struct usb251xb_data *)of_id->data);
--
2.17.1



2019-03-19 13:12:22

by Richard Leitner

[permalink] [raw]
Subject: Re: [PATCH] usb: usb251xb: fix to avoid potential NULL pointer dereference

On 19/03/2019 00:56, Aditya Pakki wrote:
> of_match_device in usb251xb_probe can fail and returns a NULL pointer.
> The patch avoids a potential NULL pointer dereference in this scenario.
>
> Signed-off-by: Aditya Pakki <[email protected]>
> ---
> drivers/usb/misc/usb251xb.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/usb/misc/usb251xb.c b/drivers/usb/misc/usb251xb.c
> index 4d72b7d1d383..fe5266dc8864 100644
> --- a/drivers/usb/misc/usb251xb.c
> +++ b/drivers/usb/misc/usb251xb.c
> @@ -612,6 +612,8 @@ static int usb251xb_probe(struct usb251xb *hub)
> dev);
> int err;
>
> + if (!of_id)
> + return -ENODEV;

Hi Aditya,
thanks for finding this issue!

Nonetheless I'd prefer to change this to not return here but rather do
something like:

if (np && of_id) {

So we still may bring up the hub in its default config in scenarios
without dt/of...

Any comments/objections on that?

regards;Richard.L

> if (np) {
> err = usb251xb_get_ofdata(hub,
> (struct usb251xb_data *)of_id->data);
>