summary refs log tree commit diff
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2019-09-04 13:01:02 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-10-04 11:02:58 +0200
commit5f318dad72d227438f4da4c57afb2dfbd9dacddb (patch)
tree0acb9e7e48b2040dd2910d873bd20eae774d8982
parent177238c3d47d54b2ed8f0da7a4290db492f4a057 (diff)
downloadlinux-5f318dad72d227438f4da4c57afb2dfbd9dacddb.tar.gz
usb: cdns3: Fix use after free in probe error handling
We can't use "wrap" after it has been freed.

Fixes: 7733f6c32e36 ("usb: cdns3: Add Cadence USB3 DRD Driver")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/20190904100102.GB7007@mwanda
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/cdns3/cdns3-pci-wrap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/usb/cdns3/cdns3-pci-wrap.c b/drivers/usb/cdns3/cdns3-pci-wrap.c
index c41ddb61b857..b0a29efe7d31 100644
--- a/drivers/usb/cdns3/cdns3-pci-wrap.c
+++ b/drivers/usb/cdns3/cdns3-pci-wrap.c
@@ -159,8 +159,9 @@ static int cdns3_pci_probe(struct pci_dev *pdev,
 		wrap->plat_dev = platform_device_register_full(&plat_info);
 		if (IS_ERR(wrap->plat_dev)) {
 			pci_disable_device(pdev);
+			err = PTR_ERR(wrap->plat_dev);
 			kfree(wrap);
-			return PTR_ERR(wrap->plat_dev);
+			return err;
 		}
 	}