• Shu Wang's avatar
    xhci: fix memleak in xhci_run() · d6f5f071
    Shu Wang authored
    Found this issue by kmemleak.
    xhci_run() did not check return val and free command for
    xhci_queue_vendor_command()
    
    unreferenced object 0xffff88011c0be500 (size 64):
      comm "kworker/0:1", pid 58, jiffies 4294670908 (age 50.420s)
      hex dump (first 32 bytes):
      backtrace:
        [<ffffffff8176166a>] kmemleak_alloc+0x4a/0xa0
        [<ffffffff8121801a>] kmem_cache_alloc_trace+0xca/0x1d0
        [<ffffffff81576bf4>] xhci_alloc_command+0x44/0x130
        [<ffffffff8156f1cc>] xhci_run+0x4cc/0x630
        [<ffffffff8153b84b>] usb_add_hcd+0x3bb/0x950
        [<ffffffff8154eac8>] usb_hcd_pci_probe+0x188/0x500
        [<ffffffff815851ac>] xhci_pci_probe+0x2c/0x220
        [<ffffffff813d2ca5>] local_pci_probe+0x45/0xa0
        [<ffffffff810a54e4>] work_for_cpu_fn+0x14/0x20
        [<ffffffff810a8409>] process_one_work+0x149/0x360
        [<ffffffff810a8d08>] worker_thread+0x1d8/0x3c0
        [<ffffffff810ae7d9>] kthread+0x109/0x140
        [<ffffffff8176d585>] ret_from_fork+0x25/0x30
        [<ffffffffffffffff>] 0xffffffffffffffff
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarShu Wang <shuwang@redhat.com>
    Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    d6f5f071
xhci.c 148 KB