netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Steffen Klassert <steffen.klassert@secunet.com>
To: Chris Ruehl <chris.ruehl@gtsys.com.hk>
Cc: Hannes Frederic Sowa <hannes@redhat.com>,
	<netdev@vger.kernel.org>, <davem@davemloft.net>
Subject: Re: ipv6: oops in datagram.c line 260
Date: Tue, 27 Jan 2015 12:58:15 +0100	[thread overview]
Message-ID: <20150127115814.GL13046@secunet.com> (raw)
In-Reply-To: <54C71AFB.40300@gtsys.com.hk>

On Tue, Jan 27, 2015 at 12:58:35PM +0800, Chris Ruehl wrote:
> 
>    Steffen,
> 
>    your patch can't apply to the vanilla v3.14.29 can you cross check please.

Sorry, this patch was based on the net tree.

>    I'm sorry but we running a productive system and I can't make to much
>    noise here!
>    Your patch is partly in the 3.14.29 and
>    skb->protocol = htons(ETH_P_IP)
>    from the xfrm4/6_output_finish() no removed. I do then
> 
>    --- linux-3.14.x/net/ipv4/xfrm4_output.c.orig    2015-01-27
>    12:50:01.830651344 +0800
>    +++ linux-3.14.x/net/ipv4/xfrm4_output.c    2015-01-27 12:51:13.280386355
>    +0800
>    @@ -82,7 +82,6 @@
>         IPCB(skb)->flags |= IPSKB_XFRM_TRANSFORMED;
>     #endif
>     
>    -    skb->protocol = htons(ETH_P_IP);
>         return xfrm_output(skb);
>     }
>     
>    --- linux-3.14.x/net/ipv6/xfrm6_output.c.orig    2015-01-27
>    12:49:39.260735321 +0800
>    +++ linux-3.14.x/net/ipv6/xfrm6_output.c    2015-01-27 12:50:47.280482636
>    +0800
>    @@ -132,7 +132,6 @@
>         IP6CB(skb)->flags |= IP6SKB_XFRM_TRANSFORMED;
>     #endif
>     
>    -    skb->protocol = htons(ETH_P_IPV6);
>         return xfrm_output(skb);
>     }

Yes, that should be ok. Here is the complete patch for v3.14.29:

Subject: [PATCH RFC v3.14.29] xfrm: Fix local error reporting crash with interfamily tunnels

We set the outer mode protocol too early. As a result, the
local error handler might dispatch to the wrong address family
and report the error to a wrong socket type. We fix this by
seting the outer protocol to the skb only after we accessed the
inner mode for the last time, right before we do the atcual
encapsulation where we switch finally to the outer mode.
The settings in xfrm{4,6}_output_finish() are removed.

Reported-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
---
 net/ipv4/xfrm4_output.c |    1 -
 net/ipv6/xfrm6_output.c |    1 -
 2 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/net/ipv4/xfrm4_output.c b/net/ipv4/xfrm4_output.c
index baa0f63..0cb9606 100644
--- a/net/ipv4/xfrm4_output.c
+++ b/net/ipv4/xfrm4_output.c
@@ -82,7 +82,6 @@ int xfrm4_output_finish(struct sk_buff *skb)
 	IPCB(skb)->flags |= IPSKB_XFRM_TRANSFORMED;
 #endif
 
-	skb->protocol = htons(ETH_P_IP);
 	return xfrm_output(skb);
 }
 
diff --git a/net/ipv6/xfrm6_output.c b/net/ipv6/xfrm6_output.c
index 6cd625e..98396cf 100644
--- a/net/ipv6/xfrm6_output.c
+++ b/net/ipv6/xfrm6_output.c
@@ -132,7 +132,6 @@ int xfrm6_output_finish(struct sk_buff *skb)
 	IP6CB(skb)->flags |= IP6SKB_XFRM_TRANSFORMED;
 #endif
 
-	skb->protocol = htons(ETH_P_IPV6);
 	return xfrm_output(skb);
 }
 
-- 
1.7.2.5

  parent reply	other threads:[~2015-01-27 11:58 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-10  5:43 ipv6: oops in datagram.c line 260 Chris Ruehl
2014-12-24 13:42 ` Chris Ruehl
2015-01-06 16:01   ` Hannes Frederic Sowa
2015-01-07  7:22     ` Steffen Klassert
2015-01-07 10:45       ` Hannes Frederic Sowa
2015-01-07 12:26         ` Steffen Klassert
2015-01-26  8:35     ` Steffen Klassert
2015-01-27  4:20       ` Chris Ruehl
     [not found]       ` <54C71AFB.40300@gtsys.com.hk>
2015-01-27 11:58         ` Steffen Klassert [this message]
2015-01-28  3:50           ` Chris Ruehl
2015-02-06  7:37           ` Chris Ruehl
2015-02-10  9:57             ` Steffen Klassert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150127115814.GL13046@secunet.com \
    --to=steffen.klassert@secunet.com \
    --cc=chris.ruehl@gtsys.com.hk \
    --cc=davem@davemloft.net \
    --cc=hannes@redhat.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).