1
0
Fork 0

USB: serial: keyspan_pda: fix tx-unthrottle use-after-free

The driver's transmit-unthrottle work was never flushed on disconnect,
something which could lead to the driver port data being freed while the
unthrottle work is still scheduled.

Fix this by cancelling the unthrottle work when shutting down the port.

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Johan Hovold <johan@kernel.org>
zero-sugar-mainline-defconfig
Johan Hovold 2020-10-25 18:45:51 +01:00
parent 37faf50615
commit 49fbb8e37a
1 changed files with 4 additions and 0 deletions

View File

@ -647,8 +647,12 @@ error:
}
static void keyspan_pda_close(struct usb_serial_port *port)
{
struct keyspan_pda_private *priv = usb_get_serial_port_data(port);
usb_kill_urb(port->write_urb);
usb_kill_urb(port->interrupt_in_urb);
cancel_work_sync(&priv->unthrottle_work);
}