]> err.no Git - linux-2.6/commitdiff
[TG3]: Fix possible NULL deref in tg3_run_loopback().
authorJesper Juhl <jesper.juhl@gmail.com>
Wed, 10 May 2006 06:14:35 +0000 (23:14 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 10 May 2006 06:14:35 +0000 (23:14 -0700)
tg3_run_loopback doesn't check that dev_alloc_skb() returns anything
useful.

Even if dev_alloc_skb() fails to return an skb to us we'll happily go
on and assume it did, so we risk dereferencing a NULL pointer.  Much
better to fail gracefully by returning -ENOMEM than crashing here.

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tg3.c

index beeb612be98f2b2e9664b5a688ee40f8cb53a670..2bd9592b75cdde117ff50f1df7c2137bd467c808 100644 (file)
@@ -8454,6 +8454,9 @@ static int tg3_run_loopback(struct tg3 *tp, int loopback_mode)
 
        tx_len = 1514;
        skb = dev_alloc_skb(tx_len);
+       if (!skb)
+               return -ENOMEM;
+
        tx_data = skb_put(skb, tx_len);
        memcpy(tx_data, tp->dev->dev_addr, 6);
        memset(tx_data + 6, 0x0, 8);