summaryrefslogtreecommitdiffstats
path: root/net/ipv4/route.c
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2008-02-08 02:58:20 +0100
committerDavid S. Miller <davem@davemloft.net>2008-02-08 02:58:20 +0100
commit4136cd523eb0c0bd53173e16fd7406d31d05824f (patch)
tree8a6b73d066e88eff6736e32863fdad4501717d6c /net/ipv4/route.c
parent[NETFILTER]: xt_iprange: add missing #include (diff)
downloadlinux-4136cd523eb0c0bd53173e16fd7406d31d05824f.tar.xz
linux-4136cd523eb0c0bd53173e16fd7406d31d05824f.zip
[IPV4]: route: fix crash ip_route_input
ip_route_me_harder() may call ip_route_input() with skbs that don't have skb->dev set for skbs rerouted in LOCAL_OUT and TCP resets generated by the REJECT target, resulting in a crash when dereferencing skb->dev->nd_net. Since ip_route_input() has an input device argument, it seems correct to use that one anyway. Bug introduced in b5921910a1 (Routing cache virtualization). Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/route.c')
-rw-r--r--net/ipv4/route.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 8842ecb9be48..525787b52b72 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -2041,7 +2041,7 @@ int ip_route_input(struct sk_buff *skb, __be32 daddr, __be32 saddr,
int iif = dev->ifindex;
struct net *net;
- net = skb->dev->nd_net;
+ net = dev->nd_net;
tos &= IPTOS_RT_MASK;
hash = rt_hash(daddr, saddr, iif);