net: fix NULL-deref in WARN() in skb_gso_segment()
Michał Mirosław [Tue, 17 Jan 2012 10:00:40 +0000 (10:00 +0000)]
Bug was introduced in commit c8f44affb7244f2ac3e703cab13d55ede27621bb.

Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>

net/core/dev.c

index 17db2f2..115dee1 100644 (file)
@@ -1889,6 +1889,7 @@ EXPORT_SYMBOL(skb_set_dev);
 
 static void skb_warn_bad_offload(const struct sk_buff *skb)
 {
+       static const netdev_features_t null_features = 0;
        struct net_device *dev = skb->dev;
        const char *driver = "";
 
@@ -1897,8 +1898,8 @@ static void skb_warn_bad_offload(const struct sk_buff *skb)
 
        WARN(1, "%s: caps=(%pNF, %pNF) len=%d data_len=%d gso_size=%d "
             "gso_type=%d ip_summed=%d\n",
-            driver, dev ? &dev->features : NULL,
-            skb->sk ? &skb->sk->sk_route_caps : NULL,
+            driver, dev ? &dev->features : &null_features,
+            skb->sk ? &skb->sk->sk_route_caps : &null_features,
             skb->len, skb->data_len, skb_shinfo(skb)->gso_size,
             skb_shinfo(skb)->gso_type, skb->ip_summed);
 }