]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
[PATCH] PPTP helper: Fix endianness bug in GRE key / CallID NAT
authorHarald Welte <laforge@netfilter.org>
Tue, 15 Nov 2005 12:32:36 +0000 (13:32 +0100)
committerChris Wright <chrisw@osdl.org>
Thu, 24 Nov 2005 22:10:08 +0000 (14:10 -0800)
This endianness bug slipped through while changing the 'gre.key' field in
the conntrack tuple from 32bit to 16bit.

None of my tests caught the problem, since the linux pptp client always has
'0' as call id / gre key.  Only windows clients actually trigger the bug.

Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: Chris Wright <chrisw@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/ipv4/netfilter/ip_nat_proto_gre.c

index 7c12854016723891b9077711abcf863c9a42d404..f7cad7cf1aec2f48e0633c66dbf541ad25a0a775 100644 (file)
@@ -139,8 +139,8 @@ gre_manip_pkt(struct sk_buff **pskb,
                        break;
                case GRE_VERSION_PPTP:
                        DEBUGP("call_id -> 0x%04x\n", 
-                               ntohl(tuple->dst.u.gre.key));
-                       pgreh->call_id = htons(ntohl(tuple->dst.u.gre.key));
+                               ntohs(tuple->dst.u.gre.key));
+                       pgreh->call_id = tuple->dst.u.gre.key;
                        break;
                default:
                        DEBUGP("can't nat unknown GRE version\n");