>From d9ecea2b1d88bc8702f70fbbca7cde2afb8312ee Mon Sep 17 00:00:00 2001 From: Ville Nuorvala <[EMAIL PROTECTED]> Date: Thu, 2 Nov 2006 13:07:35 +0200 Subject: [PATCH 6/6] IPv6: Fix infinite loop if no matching IPv6 tunnel found
If no matching IPv6 tunnel was found ip6ip6_rcv() would cause ip6_input_finish() to resubmit the same skb to ip6ip6_rcv(). Many thanks to Tero Kauppinen at Ericsson for reporting this issue. Signed-off-by: Ville Nuorvala <[EMAIL PROTECTED]> --- net/ipv6/ip6_tunnel.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c index 4f64ed7..603ed0d 100644 --- a/net/ipv6/ip6_tunnel.c +++ b/net/ipv6/ip6_tunnel.c @@ -565,11 +565,11 @@ ip6ip6_rcv(struct sk_buff *skb) return 0; } read_unlock(&ip6ip6_lock); - return 1; - + icmpv6_send(skb, ICMPV6_DEST_UNREACH, + ICMPV6_ADDR_UNREACH, 0, skb->dev); discard: kfree_skb(skb); - return 0; + return -1; } struct ipv6_tel_txoption { -- 1.4.3.2