fib_frontend: fix possible NULL pointer dereference
authorOliver Hartkopp <socketcan@hartkopp.net>
Thu, 23 Jan 2014 09:19:34 +0000 (10:19 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 6 Feb 2014 19:08:16 +0000 (11:08 -0800)
[ Upstream commit a0065f266a9b5d51575535a25c15ccbeed9a9966 ]

The two commits 0115e8e30d (net: remove delay at device dismantle) and
748e2d9396a (net: reinstate rtnl in call_netdevice_notifiers()) silently
removed a NULL pointer check for in_dev since Linux 3.7.

This patch re-introduces this check as it causes crashing the kernel when
setting small mtu values on non-ip capable netdevices.

Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv4/fib_frontend.c

index c7629a209f9d84538b8048de89ce66aa3776a9bb..4556cd25acde2fe11986dbfe2498c83674612726 100644 (file)
@@ -1049,6 +1049,8 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
        }
 
        in_dev = __in_dev_get_rtnl(dev);
+       if (!in_dev)
+               return NOTIFY_DONE;
 
        switch (event) {
        case NETDEV_UP: