]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 26 Sep 2021 13:14:12 +0000 (15:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 26 Sep 2021 13:14:12 +0000 (15:14 +0200)
added patches:
net-hso-fix-muxed-tty-registration.patch

queue-4.4/net-hso-fix-muxed-tty-registration.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/net-hso-fix-muxed-tty-registration.patch b/queue-4.4/net-hso-fix-muxed-tty-registration.patch
new file mode 100644 (file)
index 0000000..0d694e7
--- /dev/null
@@ -0,0 +1,59 @@
+From e8f69b16ee776da88589b5271e3f46020efc8f6c Mon Sep 17 00:00:00 2001
+From: Johan Hovold <johan@kernel.org>
+Date: Fri, 17 Sep 2021 12:12:04 +0200
+Subject: net: hso: fix muxed tty registration
+
+From: Johan Hovold <johan@kernel.org>
+
+commit e8f69b16ee776da88589b5271e3f46020efc8f6c upstream.
+
+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 (or already-deregistered) tty.
+
+Fix up the error handling to avoid dereferencing a NULL pointer when
+attempting to remove the character device.
+
+Fixes: 72dc1c096c70 ("HSO: add option hso driver")
+Cc: stable@vger.kernel.org     # 2.6.27
+Signed-off-by: Johan Hovold <johan@kernel.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/usb/hso.c |   12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
+
+--- a/drivers/net/usb/hso.c
++++ b/drivers/net/usb/hso.c
+@@ -2729,14 +2729,14 @@ struct hso_device *hso_create_mux_serial
+       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;
+@@ -2752,11 +2752,9 @@ struct hso_device *hso_create_mux_serial
+       /* 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;
index 74f626d7ce1d4e21306e536e2f1e821ebb26cbf8..f3006873de4079586065ccc2352e223cdb37d3fa 100644 (file)
@@ -7,3 +7,4 @@ usb-serial-mos7840-remove-duplicated-0xac24-device-id.patch
 usb-serial-option-add-telit-ln920-compositions.patch
 usb-serial-option-remove-duplicate-usb-device-id.patch
 usb-serial-option-add-device-id-for-foxconn-t99w265.patch
+net-hso-fix-muxed-tty-registration.patch