aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/cdns3/cdns3-gadget.c
diff options
context:
space:
mode:
authorPawel Laszczak <[email protected]>2020-12-11 09:50:53 +0000
committerPeter Chen <[email protected]>2020-12-29 04:36:13 +0000
commite2d60f8c475a4955b8c39bda4cf6b10b09460772 (patch)
tree036280afe1cbe2c80ed5183aa293d6b68507fe3f /drivers/usb/cdns3/cdns3-gadget.c
parentusb: cdns3: Removes xhci_cdns3_suspend_quirk from host-export.h (diff)
downloadkernel-e2d60f8c475a4955b8c39bda4cf6b10b09460772.tar.gz
kernel-e2d60f8c475a4955b8c39bda4cf6b10b09460772.zip
usb: cdnsp: fix error handling in cdnsp_mem_init()
This function uses "One Function Cleans up Everything" style and that's basically impossible to do correctly. It's cleaner to write it with "clean up the most recent allocation". Patch fixes two isues: 1. If pdev->dcbaa = dma_alloc_coherent() fails then that leads to a NULL dereference inside the cdnsp_free_priv_device() function. 2. if cdnsp_alloc_priv_device() fails that leads to a double free because we free pdev->out_ctx.bytes in several places. Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Pawel Laszczak <[email protected]> Reported-by: Dan Carpenter <[email protected]> Tested-by: Pawel Laszczak <[email protected]> Signed-off-by: Peter Chen <[email protected]>
Diffstat (limited to 'drivers/usb/cdns3/cdns3-gadget.c')
0 files changed, 0 insertions, 0 deletions