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

USB: xhci: Don't touch xhci_td after it's freed.

On a successful transfer, urb->td is freed before the URB is ready to be
given back to the driver. Don't touch urb->td after it's freed. This bug
would have only shown up when xHCI debugging was turned on, and the freed
memory was quickly reused for something else.

Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by

Sarah Sharp and committed by
Greg Kroah-Hartman
9191eee7 83fbcdcc

+1 -1
+1 -1
drivers/usb/host/xhci-ring.c
··· 1193 1193 if (urb) { 1194 1194 usb_hcd_unlink_urb_from_ep(xhci_to_hcd(xhci), urb); 1195 1195 xhci_dbg(xhci, "Giveback URB %p, len = %d, status = %d\n", 1196 - urb, td->urb->actual_length, status); 1196 + urb, urb->actual_length, status); 1197 1197 spin_unlock(&xhci->lock); 1198 1198 usb_hcd_giveback_urb(xhci_to_hcd(xhci), urb, status); 1199 1199 spin_lock(&xhci->lock);