diff options
Diffstat (limited to 'main/linux-grsec/xfrm-fix-gre-key-endianess.patch')
-rw-r--r-- | main/linux-grsec/xfrm-fix-gre-key-endianess.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/main/linux-grsec/xfrm-fix-gre-key-endianess.patch b/main/linux-grsec/xfrm-fix-gre-key-endianess.patch new file mode 100644 index 0000000000..362484a76a --- /dev/null +++ b/main/linux-grsec/xfrm-fix-gre-key-endianess.patch @@ -0,0 +1,43 @@ +From aa285b1740f5b13e5a2606a927f3129954583d78 Mon Sep 17 00:00:00 2001 +From: =?utf8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi> +Date: Tue, 23 Nov 2010 04:03:45 +0000 +Subject: [PATCH] xfrm: fix gre key endianess +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf8 +Content-Transfer-Encoding: 8bit + +fl->fl_gre_key is network byte order contrary to fl->fl_icmp_*. +Make xfrm_flowi_{s|d}port return network byte order values for gre +key too. + +Signed-off-by: Timo Teräs <timo.teras@iki.fi> +Signed-off-by: David S. Miller <davem@davemloft.net> +--- + include/net/xfrm.h | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/net/xfrm.h b/include/net/xfrm.h +index 54b2832..7fa5b00 100644 +--- a/include/net/xfrm.h ++++ b/include/net/xfrm.h +@@ -806,7 +806,7 @@ __be16 xfrm_flowi_sport(struct flowi *fl) + port = htons(fl->fl_mh_type); + break; + case IPPROTO_GRE: +- port = htonl(fl->fl_gre_key) >> 16; ++ port = htons(ntohl(fl->fl_gre_key) >> 16); + break; + default: + port = 0; /*XXX*/ +@@ -830,7 +830,7 @@ __be16 xfrm_flowi_dport(struct flowi *fl) + port = htons(fl->fl_icmp_code); + break; + case IPPROTO_GRE: +- port = htonl(fl->fl_gre_key) & 0xffff; ++ port = htons(ntohl(fl->fl_gre_key) & 0xffff); + break; + default: + port = 0; /*XXX*/ +-- +1.7.3.2 + |