diff options
author | Nikita V. Shirokov <tehnerd@fb.com> | 2017-12-07 04:15:43 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-12-07 21:59:37 +0300 |
commit | 74c4b656c3d92ec4c824ea1a4afd726b7b6568c8 (patch) | |
tree | 936133a50a718d218502281293909aff1ff027bc /net/ipv6 | |
parent | c880949f006f6095295eb596635b599513970ad4 (diff) | |
download | linux-74c4b656c3d92ec4c824ea1a4afd726b7b6568c8.tar.xz |
adding missing rcu_read_unlock in ipxip6_rcv
commit 8d79266bc48c ("ip6_tunnel: add collect_md mode to IPv6 tunnels")
introduced new exit point in ipxip6_rcv. however rcu_read_unlock is
missing there. this diff is fixing this
v1->v2:
instead of doing rcu_read_unlock in place, we are going to "drop"
section (to prevent skb leakage)
Fixes: 8d79266bc48c ("ip6_tunnel: add collect_md mode to IPv6 tunnels")
Signed-off-by: Nikita V. Shirokov <tehnerd@fb.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r-- | net/ipv6/ip6_tunnel.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 3d3092adf1d2..db84f523656d 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -904,7 +904,7 @@ static int ipxip6_rcv(struct sk_buff *skb, u8 ipproto, if (t->parms.collect_md) { tun_dst = ipv6_tun_rx_dst(skb, 0, 0, 0); if (!tun_dst) - return 0; + goto drop; } ret = __ip6_tnl_rcv(t, skb, tpi, tun_dst, dscp_ecn_decapsulate, log_ecn_error); |