From: Johan Hovold Date: Thu, 19 Sep 2019 12:12:34 +0000 (+0200) Subject: ieee802154: atusb: fix use-after-free at disconnect X-Git-Tag: Ubuntu-4.15.0-73.82~1092 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=00c5eca4aedb9dce0dafcce87591613f306db77e;p=mirror_ubuntu-bionic-kernel.git ieee802154: atusb: fix use-after-free at disconnect BugLink: https://bugs.launchpad.net/bugs/1849576 commit 7fd25e6fc035f4b04b75bca6d7e8daa069603a76 upstream. The disconnect callback was accessing the hardware-descriptor private data after having having freed it. Fixes: 7490b008d123 ("ieee802154: add support for atusb transceiver") Cc: stable # 4.2 Cc: Alexander Aring Reported-by: syzbot+f4509a9138a1472e7e80@syzkaller.appspotmail.com Signed-off-by: Johan Hovold Signed-off-by: Stefan Schmidt Signed-off-by: Greg Kroah-Hartman Signed-off-by: Kamal Mostafa Signed-off-by: Kleber Sacilotto de Souza --- diff --git a/drivers/net/ieee802154/atusb.c b/drivers/net/ieee802154/atusb.c index 9fb9b565a002..1da9a1c1f689 100644 --- a/drivers/net/ieee802154/atusb.c +++ b/drivers/net/ieee802154/atusb.c @@ -1140,10 +1140,11 @@ static void atusb_disconnect(struct usb_interface *interface) ieee802154_unregister_hw(atusb->hw); + usb_put_dev(atusb->usb_dev); + ieee802154_free_hw(atusb->hw); usb_set_intfdata(interface, NULL); - usb_put_dev(atusb->usb_dev); pr_debug("%s done\n", __func__); }