diff options
author | Jiri Slaby <jslaby@suse.cz> | 2010-06-21 21:41:36 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-06-27 01:12:02 -0400 |
commit | d41de3c10047d5f0b661593a8f4610a19f87621f (patch) | |
tree | bb5384b0601f5afa5aff283e9824cc5893c8ec5d /drivers/isdn | |
parent | cc413d9097dfc6237f37dcaf52346db1061a6119 (diff) |
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')
-rw-r--r-- | drivers/isdn/hysdn/hysdn_net.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/isdn/hysdn/hysdn_net.c b/drivers/isdn/hysdn/hysdn_net.c index 72eb92647c1..feec8d89d71 100644 --- a/drivers/isdn/hysdn/hysdn_net.c +++ b/drivers/isdn/hysdn/hysdn_net.c | |||
@@ -187,12 +187,13 @@ void | |||
187 | hysdn_rx_netpkt(hysdn_card * card, unsigned char *buf, unsigned short len) | 187 | hysdn_rx_netpkt(hysdn_card * card, unsigned char *buf, unsigned short len) |
188 | { | 188 | { |
189 | struct net_local *lp = card->netif; | 189 | struct net_local *lp = card->netif; |
190 | struct net_device *dev = lp->dev; | 190 | struct net_device *dev; |
191 | struct sk_buff *skb; | 191 | struct sk_buff *skb; |
192 | 192 | ||
193 | if (!lp) | 193 | if (!lp) |
194 | return; /* non existing device */ | 194 | return; /* non existing device */ |
195 | 195 | ||
196 | dev = lp->dev; | ||
196 | dev->stats.rx_bytes += len; | 197 | dev->stats.rx_bytes += len; |
197 | 198 | ||
198 | skb = dev_alloc_skb(len); | 199 | skb = dev_alloc_skb(len); |