Re: [syzbot] [usb?] KASAN: slab-use-after-free Write in keyspan_close
From: Edward Adam Davis
Date: Sun Aug 30 2026 - 19:50:56 EST
From: Edward Aadm Davis <eadavis@xxxxxxxx>
#syz test: upstream 08dbfad3f504
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
index 17edc057a311..51359815432a 100644
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -301,11 +301,19 @@ static void serial_port_shutdown(struct tty_port *tport)
struct usb_serial_port *port =
container_of(tport, struct usb_serial_port, port);
struct usb_serial_driver *drv = port->serial->type;
+ struct usb_serial *serial = port->serial;
+
+ mutex_lock(&serial->disc_mutex);
+ if (serial->disconnected) {
+ mutex_unlock(&serial->disc_mutex);
+ return;
+ }
if (drv->close)
drv->close(port);
usb_autopm_put_interface(port->serial->interface);
+ mutex_unlock(&serial->disc_mutex);
}
static void serial_hangup(struct tty_struct *tty)