summaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hysdn
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2010-06-22 03:41:36 +0200
committerDavid S. Miller <davem@davemloft.net>2010-06-27 07:12:02 +0200
commitd41de3c10047d5f0b661593a8f4610a19f87621f (patch)
treebb5384b0601f5afa5aff283e9824cc5893c8ec5d /drivers/isdn/hysdn
parentvxge: fix memory leak in vxge_alloc_msix() error path (diff)
downloadlinux-d41de3c10047d5f0b661593a8f4610a19f87621f.tar.xz
linux-d41de3c10047d5f0b661593a8f4610a19f87621f.zip
ISDN: hysdn, fix potential NULL dereference
Stanse found that lp is dereferenced earlier than checked for being NULL in hysdn_rx_netpkt. Move the initialization below the test. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: Karsten Keil <isdn@linux-pingi.de> Cc: "David S. Miller" <davem@davemloft.net> Cc: Stephen Hemminger <shemminger@vyatta.com> Cc: Patrick McHardy <kaber@trash.net> Cc: netdev@vger.kernel.org Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/isdn/hysdn')
-rw-r--r--drivers/isdn/hysdn/hysdn_net.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/isdn/hysdn/hysdn_net.c b/drivers/isdn/hysdn/hysdn_net.c
index 72eb92647c1b..feec8d89d719 100644
--- a/drivers/isdn/hysdn/hysdn_net.c
+++ b/drivers/isdn/hysdn/hysdn_net.c
@@ -187,12 +187,13 @@ void
hysdn_rx_netpkt(hysdn_card * card, unsigned char *buf, unsigned short len)
{
struct net_local *lp = card->netif;
- struct net_device *dev = lp->dev;
+ struct net_device *dev;
struct sk_buff *skb;
if (!lp)
return; /* non existing device */
+ dev = lp->dev;
dev->stats.rx_bytes += len;
skb = dev_alloc_skb(len);