Patch "ip6_gre: fix endianness errors in ip6gre_err" has been added to the 3.18-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
ip6_gre: fix endianness errors in ip6gre_err
to the 3.18-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ip6_gre-fix-endianness-errors-in-ip6gre_err.patch
and it can be found in the queue-3.18 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d1e158e2d7a0a91110b206653f0e02376e809150Mon Sep 17 00:00:00 2001
From: Sabrina Dubroca <[email protected]>
Date: Wed, 4 Feb 2015 15:25:09 +0100
Subject: ip6_gre: fix endianness errors in ip6gre_err
From: Sabrina Dubroca <[email protected]>
commit d1e158e2d7a0a91110b206653f0e02376e809150 upstream.
info is in network byte order, change it back to host byte order before use. In particular, the current code sets the MTU of the tunnel to a wrong (too big) value.
--- net/ipv6/ip6_gre.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
net/ipv6/ip6_gre.c +2 -2
@@ -421,7 +421,7 @@ static void ip6gre_err(struct sk_buff *sif (code ==ICMPV6_HDR_FIELD ) teli =ip6_tnl_parse_tlv_enc_lim (skb, skb->data); -if (teli && teli == info -2 ) { +if (teli && teli ==be32_to_cpu (info) -2 ) { tel = (struct ipv6_tlv_tnl_enc_lim *) &skb->data[teli];if (tel->encap_limit ==0 ) { net_warn_ratelimited("%s: Too small encapsulation limit or routing loop in tunnel!\n",
@@ -433,7 +433,7 @@ static void ip6gre_err(struct sk_buff *s }break ;case ICMPV6_PKT_TOOBIG : - mtu = info - offset; + mtu =be32_to_cpu (info) - offset;if (mtu <IPV6_MIN_MTU ) mtu =IPV6_MIN_MTU ; t->dev->mtu = mtu;
Patches currently in stable-queue which might be from [email protected] are
queue-3.18/ip6_gre-fix-endianness-errors-in-ip6gre_err.patch queue-3.18/ipv6-fix-memory-leak-with-multiple-tables-during-netns-destruction.patch