aboutsummaryrefslogtreecommitdiffstats
path: root/main/linux-grsec/xfrm-fix-gre-key-endianess.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/linux-grsec/xfrm-fix-gre-key-endianess.patch')
-rw-r--r--main/linux-grsec/xfrm-fix-gre-key-endianess.patch43
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
+