From: Greg Kroah-Hartman Date: Sun, 26 Sep 2021 13:14:12 +0000 (+0200) Subject: 4.4-stable patches X-Git-Tag: v5.4.150~48 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=37b3b2d6a02ab94517020701452f7f276bd4497c;p=thirdparty%2Fkernel%2Fstable-queue.git 4.4-stable patches added patches: net-hso-fix-muxed-tty-registration.patch --- 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 index 00000000000..0d694e7208b --- /dev/null +++ b/queue-4.4/net-hso-fix-muxed-tty-registration.patch @@ -0,0 +1,59 @@ +From e8f69b16ee776da88589b5271e3f46020efc8f6c Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Fri, 17 Sep 2021 12:12:04 +0200 +Subject: net: hso: fix muxed tty registration + +From: Johan Hovold + +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 +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman +--- + 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; + diff --git a/queue-4.4/series b/queue-4.4/series index 74f626d7ce1..f3006873de4 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -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