usbnet: smsc95xx: dereferencing NULL pointer
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Tue, 11 Nov 2014 08:40:47 +0000 (14:10 +0530)
committerDavid S. Miller <davem@davemloft.net>
Tue, 11 Nov 2014 21:24:08 +0000 (16:24 -0500)
we were dereferencing dev to initialize pdata. but just after that we
have a BUG_ON(!dev). so we were basically dereferencing the pointer
first and then tesing it for NULL.

Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/smsc95xx.c

index d07bf4cb893f878c2a2a7f40e5c5691304fbdbf5..26423adc35ee892c6a520cc243f8e71680a71eaf 100644 (file)
@@ -1670,12 +1670,14 @@ done:
 static int smsc95xx_resume(struct usb_interface *intf)
 {
        struct usbnet *dev = usb_get_intfdata(intf);
-       struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
-       u8 suspend_flags = pdata->suspend_flags;
+       struct smsc95xx_priv *pdata;
+       u8 suspend_flags;
        int ret;
        u32 val;
 
        BUG_ON(!dev);
+       pdata = (struct smsc95xx_priv *)(dev->data[0]);
+       suspend_flags = pdata->suspend_flags;
 
        netdev_dbg(dev->net, "resume suspend_flags=0x%02x\n", suspend_flags);