staging: gdm724x: gdm_mux: fix use-after-free on module unload

commit b58f45c8fc301fe83ee28cad3e64686c19e78f1c upstream.

Make sure to deregister the USB driver before releasing the tty driver
to avoid use-after-free in the USB disconnect callback where the tty
devices are deregistered.

Fixes: 61e1210476 ("staging: gdm7240: adding LTE USB driver")
Cc: Won Kang <wkang77@gmail.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Johan Hovold 2017-04-26 12:23:04 +02:00 committed by Greg Kroah-Hartman
parent 265500bf98
commit 5ac489a80f

View file

@ -670,14 +670,14 @@ static int __init gdm_usb_mux_init(void)
static void __exit gdm_usb_mux_exit(void) static void __exit gdm_usb_mux_exit(void)
{ {
unregister_lte_tty_driver();
if (mux_rx_wq) { if (mux_rx_wq) {
flush_workqueue(mux_rx_wq); flush_workqueue(mux_rx_wq);
destroy_workqueue(mux_rx_wq); destroy_workqueue(mux_rx_wq);
} }
usb_deregister(&gdm_mux_driver); usb_deregister(&gdm_mux_driver);
unregister_lte_tty_driver();
} }
module_init(gdm_usb_mux_init); module_init(gdm_usb_mux_init);