All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net] net: hso: fix NULL-deref on tty registration failure
@ 2021-04-26  9:45 Johan Hovold
  0 siblings, 0 replies; only message in thread
From: Johan Hovold @ 2021-04-26  9:45 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski
  Cc: Greg Kroah-Hartman, linux-usb, netdev, linux-kernel, Johan Hovold,
	stable

If resource allocation and registration fail for a muxed tty device
(e.g. if there are no more minor numbers) the driver should not try to
deregister the never-registered tty.

Fix up the error handling to avoid dereferencing a NULL pointer when
attempting to remove the character device:

	BUG: kernel NULL pointer dereference, address: 0000000000000064
	[...]
	RIP: 0010:cdev_del+0x4/0x20
	[...]
	Call Trace:
	 tty_unregister_device+0x34/0x50
	 hso_probe+0x1d1/0x57e [hso]

Fixes: 72dc1c096c70 ("HSO: add option hso driver")
Cc: stable@vger.kernel.org	# 2.6.27
Signed-off-by: Johan Hovold <johan@kernel.org>
---
 drivers/net/usb/hso.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index cfad5b36bd8e..81ff54e9587f 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -2710,14 +2710,14 @@ struct hso_device *hso_create_mux_serial_device(struct usb_interface *interface,
 
 	serial = kzalloc(sizeof(*serial), GFP_KERNEL);
 	if (!serial)
-		goto exit;
+		goto err_free_dev;
 
 	hso_dev->port_data.dev_serial = serial;
 	serial->parent = hso_dev;
 
 	if (hso_serial_common_create
 	    (serial, 1, CTRL_URB_RX_SIZE, CTRL_URB_TX_SIZE))
-		goto exit;
+		goto err_free_serial;
 
 	serial->tx_data_length--;
 	serial->write_data = hso_mux_serial_write_data;
@@ -2733,11 +2733,9 @@ struct hso_device *hso_create_mux_serial_device(struct usb_interface *interface,
 	/* done, return it */
 	return hso_dev;
 
-exit:
-	if (serial) {
-		tty_unregister_device(tty_drv, serial->minor);
-		kfree(serial);
-	}
+err_free_serial:
+	kfree(serial);
+err_free_dev:
 	kfree(hso_dev);
 	return NULL;
 
-- 
2.26.3


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2021-04-26  9:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-04-26  9:45 [PATCH net] net: hso: fix NULL-deref on tty registration failure Johan Hovold

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.