Commit d811552e authored by Harald Welte's avatar Harald Welte Committed by Arnaldo Carvalho de Melo

[NETFILTER] PPTP helper: Fix endianness bug in GRE key / CallID NAT

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: default avatarHarald Welte <laforge@netfilter.org>
Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@mandriva.com>
parent 3428c209
...@@ -139,8 +139,8 @@ gre_manip_pkt(struct sk_buff **pskb, ...@@ -139,8 +139,8 @@ gre_manip_pkt(struct sk_buff **pskb,
break; break;
case GRE_VERSION_PPTP: case GRE_VERSION_PPTP:
DEBUGP("call_id -> 0x%04x\n", DEBUGP("call_id -> 0x%04x\n",
ntohl(tuple->dst.u.gre.key)); ntohs(tuple->dst.u.gre.key));
pgreh->call_id = htons(ntohl(tuple->dst.u.gre.key)); pgreh->call_id = tuple->dst.u.gre.key;
break; break;
default: default:
DEBUGP("can't nat unknown GRE version\n"); DEBUGP("can't nat unknown GRE version\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment