From 490faef67a0a6c4ae2e567ed49723e01686bcbf6 Mon Sep 17 00:00:00 2001 From: Hannes Frederic Sowa Date: Wed, 8 Apr 2015 17:01:22 +0200 Subject: [PATCH] ipv4: ip_tunnel: use net namespace from rtable not socket commit 926a882f6916fd76b6f8ee858d45a2241c5e7999 upstream. The socket parameter might legally be NULL, thus sock_net is sometimes causing a NULL pointer dereference. Using net_device pointer in dst_entry is more reliable. Fixes: b6a7719aedd7e5c ("ipv4: hash net ptr into fragmentation bucket selection") Reported-by: Rick Jones Cc: Rick Jones Cc: David S. Miller Signed-off-by: Hannes Frederic Sowa Signed-off-by: David S. Miller Signed-off-by: Ben Hutchings Signed-off-by: Kevin F. Haggerty Change-Id: I7492f0e579973198c292195b36ca9475bf7f5bb3 --- include/net/ipip.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/net/ipip.h b/include/net/ipip.h index 2ee2bcc9b18..98ca332790d 100644 --- a/include/net/ipip.h +++ b/include/net/ipip.h @@ -51,7 +51,7 @@ struct ip_tunnel_prl_entry { int pkt_len = skb->len - skb_transport_offset(skb); \ \ skb->ip_summed = CHECKSUM_NONE; \ - ip_select_ident(skb_net(skb), skb, NULL); \ + ip_select_ident(dev_net(rt->dst.dev), skb, NULL); \ \ err = ip_local_out(skb); \ if (likely(net_xmit_eval(err) == 0)) { \