aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/whci
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2012-07-20 02:58:16 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-08-15 18:17:39 -0400
commit3821bf4abb7f78c90af7fa2975df6618906b11ec (patch)
tree4ac3fbae82c1d034713ecf31b3c34479fb98b6fc /drivers/usb/host/whci
parent644034c21209feaddd6d584669ffb40561525d18 (diff)
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: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/whci')
-rw-r--r--drivers/usb/host/whci/hcd.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/usb/host/whci/hcd.c b/drivers/usb/host/whci/hcd.c
index 1e141f755b26..c3a647816af0 100644
--- a/drivers/usb/host/whci/hcd.c
+++ b/drivers/usb/host/whci/hcd.c
@@ -238,16 +238,16 @@ static struct hc_driver whc_hc_driver = {
238 238
239static int whc_probe(struct umc_dev *umc) 239static int whc_probe(struct umc_dev *umc)
240{ 240{
241 int ret = -ENOMEM; 241 int ret;
242 struct usb_hcd *usb_hcd; 242 struct usb_hcd *usb_hcd;
243 struct wusbhc *wusbhc = NULL; 243 struct wusbhc *wusbhc;
244 struct whc *whc = NULL; 244 struct whc *whc;
245 struct device *dev = &umc->dev; 245 struct device *dev = &umc->dev;
246 246
247 usb_hcd = usb_create_hcd(&whc_hc_driver, dev, "whci"); 247 usb_hcd = usb_create_hcd(&whc_hc_driver, dev, "whci");
248 if (usb_hcd == NULL) { 248 if (usb_hcd == NULL) {
249 dev_err(dev, "unable to create hcd\n"); 249 dev_err(dev, "unable to create hcd\n");
250 goto error; 250 return -ENOMEM;
251 } 251 }
252 252
253 usb_hcd->wireless = 1; 253 usb_hcd->wireless = 1;