| From b58f45c8fc301fe83ee28cad3e64686c19e78f1c Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Wed, 26 Apr 2017 12:23:04 +0200 |
| Subject: [PATCH] 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: 61e121047645 ("staging: gdm7240: adding LTE USB driver") |
| Cc: stable <stable@vger.kernel.org> # 3.12 |
| Cc: Won Kang <wkang77@gmail.com> |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| diff --git a/drivers/staging/gdm724x/gdm_mux.c b/drivers/staging/gdm724x/gdm_mux.c |
| index aba32e22db0c..996b1f538aae 100644 |
| --- a/drivers/staging/gdm724x/gdm_mux.c |
| +++ b/drivers/staging/gdm724x/gdm_mux.c |
| @@ -664,9 +664,8 @@ static int __init gdm_usb_mux_init(void) |
| |
| static void __exit gdm_usb_mux_exit(void) |
| { |
| - unregister_lte_tty_driver(); |
| - |
| usb_deregister(&gdm_mux_driver); |
| + unregister_lte_tty_driver(); |
| } |
| |
| module_init(gdm_usb_mux_init); |
| -- |
| 2.12.0 |
| |