Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: frontier: use after free in disconnect()

usb_alphatrack_delete() frees "dev" so we can't use it on that path.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Dan Carpenter and committed by
Greg Kroah-Hartman
c8145c56 4b18f08b

+1 -1
+1 -1
drivers/staging/frontier/alphatrack.c
··· 827 827 mutex_unlock(&dev->mtx); 828 828 usb_alphatrack_delete(dev); 829 829 } else { 830 + atomic_set(&dev->writes_pending, 0); 830 831 dev->intf = NULL; 831 832 mutex_unlock(&dev->mtx); 832 833 } 833 834 834 - atomic_set(&dev->writes_pending, 0); 835 835 mutex_unlock(&disconnect_mutex); 836 836 837 837 dev_info(&intf->dev, "Alphatrack Surface #%d now disconnected\n",