mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-12-23 22:49:28 -05:00
34 lines
1.4 KiB
Diff
34 lines
1.4 KiB
Diff
From bd998c2e0df0469707503023d50d46cf0b10c787 Mon Sep 17 00:00:00 2001
|
|
From: Johan Hovold <johan@kernel.org>
|
|
Date: Wed, 4 Oct 2017 11:01:12 +0200
|
|
Subject: [PATCH] USB: serial: console: fix use-after-free on disconnect
|
|
|
|
A clean-up patch removing two redundant NULL-checks from the console
|
|
disconnect handler inadvertently also removed a third check. This could
|
|
lead to the struct usb_serial being prematurely freed by the console
|
|
code when a driver accepts but does not register any ports for an
|
|
interface which also lacks endpoint descriptors.
|
|
|
|
Fixes: 0e517c93dc02 ("USB: serial: console: clean up sanity checks")
|
|
Cc: stable <stable@vger.kernel.org> # 4.11
|
|
Reported-by: Andrey Konovalov <andreyknvl@google.com>
|
|
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
Signed-off-by: Johan Hovold <johan@kernel.org>
|
|
---
|
|
drivers/usb/serial/console.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
|
|
index fdf89800ebc3f..ed8ba3ef5c794 100644
|
|
--- a/drivers/usb/serial/console.c
|
|
+++ b/drivers/usb/serial/console.c
|
|
@@ -265,7 +265,7 @@ static struct console usbcons = {
|
|
|
|
void usb_serial_console_disconnect(struct usb_serial *serial)
|
|
{
|
|
- if (serial->port[0] == usbcons_info.port) {
|
|
+ if (serial->port[0] && serial->port[0] == usbcons_info.port) {
|
|
usb_serial_console_exit();
|
|
usb_serial_put(serial);
|
|
}
|