瀏覽代碼

[IPV6]: Fix ICMP relookup error path dst leak

When we encounter an error while looking up the dst the second
time we need to drop the first dst.  This patch is pretty much
the same as the one for IPv4.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
Herbert Xu 17 年之前
父節點
當前提交
f32c5f2c38
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      net/ipv6/icmp.c

+ 2 - 2
net/ipv6/icmp.c

@@ -436,10 +436,10 @@ void icmpv6_send(struct sk_buff *skb, int type, int code, __u32 info,
 	}
 	}
 
 
 	if (xfrm_decode_session_reverse(skb, &fl2, AF_INET6))
 	if (xfrm_decode_session_reverse(skb, &fl2, AF_INET6))
-		goto out;
+		goto out_dst_release;
 
 
 	if (ip6_dst_lookup(sk, &dst2, &fl))
 	if (ip6_dst_lookup(sk, &dst2, &fl))
-		goto out;
+		goto out_dst_release;
 
 
 	err = xfrm_lookup(&dst2, &fl, sk, XFRM_LOOKUP_ICMP);
 	err = xfrm_lookup(&dst2, &fl, sk, XFRM_LOOKUP_ICMP);
 	if (err == -ENOENT) {
 	if (err == -ENOENT) {