[NETFILTER]: PPTP conntrack: fix header definitions
Patrick McHardy [Wed, 20 Sep 2006 19:08:56 +0000 (12:08 -0700)]
Fix a few header definitions to match RFC2637. Most importantly the
PptpOutCallRequest header included an invalid padding field and a
size check was disabled because of this.

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

include/linux/netfilter_ipv4/ip_conntrack_pptp.h
net/ipv4/netfilter/ip_conntrack_helper_pptp.c

index 0d35623..620bf06 100644 (file)
@@ -107,8 +107,7 @@ struct PptpControlHeader {
 
 struct PptpStartSessionRequest {
        __be16  protocolVersion;
-       __u8    reserved1;
-       __u8    reserved2;
+       __u16   reserved1;
        __be32  framingCapability;
        __be32  bearerCapability;
        __be16  maxChannels;
@@ -143,6 +142,8 @@ struct PptpStartSessionReply {
 
 struct PptpStopSessionRequest {
        __u8    reason;
+       __u8    reserved1;
+       __u16   reserved2;
 };
 
 /* PptpStopSessionResultCode */
@@ -152,6 +153,7 @@ struct PptpStopSessionRequest {
 struct PptpStopSessionReply {
        __u8    resultCode;
        __u8    generalErrorCode;
+       __u16   reserved1;
 };
 
 struct PptpEchoRequest {
@@ -188,9 +190,8 @@ struct PptpOutCallRequest {
        __be32  framingType;
        __be16  packetWindow;
        __be16  packetProcDelay;
-       __u16   reserved1;
        __be16  phoneNumberLength;
-       __u16   reserved2;
+       __u16   reserved1;
        __u8    phoneNumber[64];
        __u8    subAddress[64];
 };
index 0510ee5..1a8da90 100644 (file)
@@ -569,7 +569,7 @@ pptp_outbound_pkt(struct sk_buff **pskb,
        case PPTP_OUT_CALL_REQUEST:
                if (reqlen < sizeof(_pptpReq.ocreq)) {
                        DEBUGP("%s: short packet\n", pptp_msg_name[msg]);
-                       /* FIXME: break; */
+                       break;
                }
 
                /* client initiating connection to server */