xhci: Fix xhci debugfs NULL pointer dereference in resume from hibernate
authorMathias Nyman <mathias.nyman@linux.intel.com>
Thu, 21 Dec 2017 13:06:13 +0000 (15:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 27 Dec 2017 14:24:27 +0000 (15:24 +0100)
commit052f71e25a7ecd80a9567b291df8ea333d9a8565
tree9b54176a65005199ca70e259ebbbb20f490b78ee
parent66da16850ee6f37920c807c07ceed25b251bc639
xhci: Fix xhci debugfs NULL pointer dereference in resume from hibernate

Free the virt_device and its debugfs_private member together.

When resuming from hibernate the .free_dev callback unconditionally
freed the debugfs_private member, but could leave virt_device intact.

This triggered a NULL pointer dereference after resume when usbmuxd
sent a USBDEVFS_SETCONFIGURATION ioctl to a device, trying to add a
endpoint debugfs entry to a already freed debugfs_private pointer.

Fixes: 02b6fdc2a153 ("usb: xhci: Add debugfs interface for xHCI driver")
Reported-by: Alexander Kappner <agk@godking.net>
Tested-by: Alexander Kappner <agk@godking.net>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci.c