Commit 3821bf4a authored by Dan Carpenter's avatar Dan Carpenter Committed by Greg Kroah-Hartman

USB: whci-hcd: fix NULL dereference on allocation failure

If usb_create_hcd() fails here then we dereference "whc" inside the call
to whc_clean_up() before it has been set.  The compiler would have
warned about this if we hadn't initialized all the pointers to NULL at
the start of the function.  I've cleaned that up as well.
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 644034c2
...@@ -238,16 +238,16 @@ static struct hc_driver whc_hc_driver = { ...@@ -238,16 +238,16 @@ static struct hc_driver whc_hc_driver = {
static int whc_probe(struct umc_dev *umc) static int whc_probe(struct umc_dev *umc)
{ {
int ret = -ENOMEM; int ret;
struct usb_hcd *usb_hcd; struct usb_hcd *usb_hcd;
struct wusbhc *wusbhc = NULL; struct wusbhc *wusbhc;
struct whc *whc = NULL; struct whc *whc;
struct device *dev = &umc->dev; struct device *dev = &umc->dev;
usb_hcd = usb_create_hcd(&whc_hc_driver, dev, "whci"); usb_hcd = usb_create_hcd(&whc_hc_driver, dev, "whci");
if (usb_hcd == NULL) { if (usb_hcd == NULL) {
dev_err(dev, "unable to create hcd\n"); dev_err(dev, "unable to create hcd\n");
goto error; return -ENOMEM;
} }
usb_hcd->wireless = 1; usb_hcd->wireless = 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment