Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c0b28b1 authored by Hans J. Koch's avatar Hans J. Koch Committed by David S. Miller
Browse files

can: Fix possible NULL pointer dereference in ems_usb.c



In ems_usb_probe(), a pointer is dereferenced after making sure it is NULL...

This patch replaces netdev->dev.parent with &intf->dev in dev_err() calls to
avoid this.

Signed-off-by: default avatar"Hans J. Koch" <hjk@linutronix.de>
Acked-by: default avatarWolfgang Grandegger <wg@grandegger.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 05d17608
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -1006,7 +1006,7 @@ static int ems_usb_probe(struct usb_interface *intf,

	netdev = alloc_candev(sizeof(struct ems_usb), MAX_TX_URBS);
	if (!netdev) {
		dev_err(netdev->dev.parent, "Couldn't alloc candev\n");
		dev_err(&intf->dev, "ems_usb: Couldn't alloc candev\n");
		return -ENOMEM;
	}

@@ -1036,20 +1036,20 @@ static int ems_usb_probe(struct usb_interface *intf,

	dev->intr_urb = usb_alloc_urb(0, GFP_KERNEL);
	if (!dev->intr_urb) {
		dev_err(netdev->dev.parent, "Couldn't alloc intr URB\n");
		dev_err(&intf->dev, "Couldn't alloc intr URB\n");
		goto cleanup_candev;
	}

	dev->intr_in_buffer = kzalloc(INTR_IN_BUFFER_SIZE, GFP_KERNEL);
	if (!dev->intr_in_buffer) {
		dev_err(netdev->dev.parent, "Couldn't alloc Intr buffer\n");
		dev_err(&intf->dev, "Couldn't alloc Intr buffer\n");
		goto cleanup_intr_urb;
	}

	dev->tx_msg_buffer = kzalloc(CPC_HEADER_SIZE +
				     sizeof(struct ems_cpc_msg), GFP_KERNEL);
	if (!dev->tx_msg_buffer) {
		dev_err(netdev->dev.parent, "Couldn't alloc Tx buffer\n");
		dev_err(&intf->dev, "Couldn't alloc Tx buffer\n");
		goto cleanup_intr_in_buffer;
	}