diff mbox series

usb: usb251xb: fix to avoid potential NULL pointer dereference

Message ID 20190318235605.11055-1-pakki001@umn.edu (mailing list archive)
State Superseded
Headers show
Series usb: usb251xb: fix to avoid potential NULL pointer dereference | expand

Commit Message

Aditya Pakki March 18, 2019, 11:56 p.m. UTC
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 <pakki001@umn.edu>
---
 drivers/usb/misc/usb251xb.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Richard Leitner March 19, 2019, 1:11 p.m. UTC | #1
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 <pakki001@umn.edu>
> ---
>   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);
>
diff mbox series

Patch

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);