From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linuxfoundation.org ([140.211.169.12]:40214 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752651AbdAIKbF (ORCPT ); Mon, 9 Jan 2017 05:31:05 -0500 Subject: Patch "USB: serial: io_ti: fix another NULL-deref at open" has been added to the 4.4-stable tree To: johan@kernel.org, gregkh@linuxfoundation.org Cc: , From: Date: Mon, 09 Jan 2017 11:31:15 +0100 Message-ID: <148395787568142@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: This is a note to let you know that I've just added the patch titled USB: serial: io_ti: fix another NULL-deref at open to the 4.4-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: usb-serial-io_ti-fix-another-null-deref-at-open.patch and it can be found in the queue-4.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let know about it. >>From 4f9785cc99feeb3673993b471f646b4dbaec2cc1 Mon Sep 17 00:00:00 2001 From: Johan Hovold Date: Tue, 3 Jan 2017 16:39:44 +0100 Subject: USB: serial: io_ti: fix another NULL-deref at open From: Johan Hovold commit 4f9785cc99feeb3673993b471f646b4dbaec2cc1 upstream. In case a device is left in "boot-mode" we must not register any port devices in order to avoid a NULL-pointer dereference on open due to missing endpoints. This could be used by a malicious device to trigger an OOPS: Unable to handle kernel NULL pointer dereference at virtual address 00000030 ... [] (edge_open [io_ti]) from [] (serial_port_activate+0x68/0x98 [usbserial]) [] (serial_port_activate [usbserial]) from [] (tty_port_open+0x9c/0xe8) [] (tty_port_open) from [] (serial_open+0x48/0x6c [usbserial]) [] (serial_open [usbserial]) from [] (tty_open+0xcc/0x5cc) Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman --- drivers/usb/serial/io_ti.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) --- a/drivers/usb/serial/io_ti.c +++ b/drivers/usb/serial/io_ti.c @@ -1508,7 +1508,7 @@ stayinbootmode: dev_dbg(dev, "%s - STAYING IN BOOT MODE\n", __func__); serial->product_info.TiMode = TI_MODE_BOOT; - return 0; + return 1; } static int ti_do_config(struct edgeport_port *port, int feature, int on) @@ -2563,14 +2563,18 @@ static int edge_startup(struct usb_seria mutex_init(&edge_serial->es_lock); edge_serial->serial = serial; + INIT_DELAYED_WORK(&edge_serial->heartbeat_work, edge_heartbeat_work); usb_set_serial_data(serial, edge_serial); status = download_fw(edge_serial); - if (status) { + if (status < 0) { kfree(edge_serial); return status; } + if (status > 0) + return 1; /* bind but do not register any ports */ + product_id = le16_to_cpu( edge_serial->serial->dev->descriptor.idProduct); @@ -2582,7 +2586,6 @@ static int edge_startup(struct usb_seria } } - INIT_DELAYED_WORK(&edge_serial->heartbeat_work, edge_heartbeat_work); edge_heartbeat_schedule(edge_serial); return 0; Patches currently in stable-queue which might be from johan@kernel.org are queue-4.4/usb-serial-io_ti-fix-i-o-after-disconnect.patch queue-4.4/usb-serial-ti_usb_3410_5052-fix-null-deref-at-open.patch queue-4.4/usb-serial-kobil_sct-fix-null-deref-in-write.patch queue-4.4/usb-serial-spcp8x5-fix-null-deref-at-open.patch queue-4.4/usb-serial-mos7720-fix-parallel-probe.patch queue-4.4/usb-serial-cyberjack-fix-null-deref-at-open.patch queue-4.4/usb-serial-mos7720-fix-null-deref-at-open.patch queue-4.4/usb-serial-garmin_gps-fix-memory-leak-on-failed-urb-submit.patch queue-4.4/usb-serial-io_ti-fix-null-deref-at-open.patch queue-4.4/usb-serial-pl2303-fix-null-deref-at-open.patch queue-4.4/usb-serial-quatech2-fix-sleep-while-atomic-in-close.patch queue-4.4/usb-serial-iuu_phoenix-fix-null-deref-at-open.patch queue-4.4/usb-serial-oti6858-fix-null-deref-at-open.patch queue-4.4/usb-serial-io_edgeport-fix-null-deref-at-open.patch queue-4.4/usb-serial-mos7720-fix-parport-use-after-free-on-probe-errors.patch queue-4.4/usb-serial-mos7720-fix-use-after-free-on-probe-errors.patch queue-4.4/usb-serial-mos7840-fix-null-deref-at-open.patch queue-4.4/usb-serial-omninet-fix-null-derefs-at-open-and-disconnect.patch queue-4.4/usb-serial-keyspan_pda-verify-endpoints-at-probe.patch queue-4.4/usb-serial-io_ti-fix-another-null-deref-at-open.patch