[NETFILTER] Fix sparse endian warnings in pptp helper
authorAlexey Dobriyan <adobriyan@gmail.com>
Fri, 23 Sep 2005 06:45:24 +0000 (23:45 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 23 Sep 2005 06:45:24 +0000 (23:45 -0700)
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/netfilter_ipv4/ip_conntrack_pptp.h
include/linux/netfilter_ipv4/ip_conntrack_tuple.h
net/ipv4/netfilter/ip_conntrack_helper_pptp.c

index 389e385..50a761d 100644 (file)
@@ -60,8 +60,8 @@ struct ip_ct_pptp_expect {
 
 struct pptp_pkt_hdr {
        __u16   packetLength;
-       __u16   packetType;
-       __u32   magicCookie;
+       __be16  packetType;
+       __be32  magicCookie;
 };
 
 /* PptpControlMessageType values */
@@ -93,7 +93,7 @@ struct pptp_pkt_hdr {
 #define PPTP_REMOVE_DEVICE_ERROR       6
 
 struct PptpControlHeader {
-       __u16   messageType;
+       __be16  messageType;
        __u16   reserved;
 };
 
@@ -106,13 +106,13 @@ struct PptpControlHeader {
 #define PPTP_BEARER_CAP_DIGITAL                0x2
 
 struct PptpStartSessionRequest {
-       __u16   protocolVersion;
+       __be16  protocolVersion;
        __u8    reserved1;
        __u8    reserved2;
-       __u32   framingCapability;
-       __u32   bearerCapability;
-       __u16   maxChannels;
-       __u16   firmwareRevision;
+       __be32  framingCapability;
+       __be32  bearerCapability;
+       __be16  maxChannels;
+       __be16  firmwareRevision;
        __u8    hostName[64];
        __u8    vendorString[64];
 };
@@ -125,13 +125,13 @@ struct PptpStartSessionRequest {
 #define PPTP_START_UNKNOWN_PROTOCOL    5
 
 struct PptpStartSessionReply {
-       __u16   protocolVersion;
+       __be16  protocolVersion;
        __u8    resultCode;
        __u8    generalErrorCode;
-       __u32   framingCapability;
-       __u32   bearerCapability;
-       __u16   maxChannels;
-       __u16   firmwareRevision;
+       __be32  framingCapability;
+       __be32  bearerCapability;
+       __be16  maxChannels;
+       __be16  firmwareRevision;
        __u8    hostName[64];
        __u8    vendorString[64];
 };
@@ -155,7 +155,7 @@ struct PptpStopSessionReply {
 };
 
 struct PptpEchoRequest {
-       __u32 identNumber;
+       __be32 identNumber;
 };
 
 /* PptpEchoReplyResultCode */
@@ -163,7 +163,7 @@ struct PptpEchoRequest {
 #define PPTP_ECHO_GENERAL_ERROR                2
 
 struct PptpEchoReply {
-       __u32   identNumber;
+       __be32  identNumber;
        __u8    resultCode;
        __u8    generalErrorCode;
        __u16   reserved;
@@ -180,16 +180,16 @@ struct PptpEchoReply {
 #define PPTP_DONT_CARE_BEARER_TYPE     3
 
 struct PptpOutCallRequest {
-       __u16   callID;
-       __u16   callSerialNumber;
-       __u32   minBPS;
-       __u32   maxBPS;
-       __u32   bearerType;
-       __u32   framingType;
-       __u16   packetWindow;
-       __u16   packetProcDelay;
+       __be16  callID;
+       __be16  callSerialNumber;
+       __be32  minBPS;
+       __be32  maxBPS;
+       __be32  bearerType;
+       __be32  framingType;
+       __be16  packetWindow;
+       __be16  packetProcDelay;
        __u16   reserved1;
-       __u16   phoneNumberLength;
+       __be16  phoneNumberLength;
        __u16   reserved2;
        __u8    phoneNumber[64];
        __u8    subAddress[64];
@@ -205,24 +205,24 @@ struct PptpOutCallRequest {
 #define PPTP_OUTCALL_DONT_ACCEPT       7
 
 struct PptpOutCallReply {
-       __u16   callID;
-       __u16   peersCallID;
+       __be16  callID;
+       __be16  peersCallID;
        __u8    resultCode;
        __u8    generalErrorCode;
-       __u16   causeCode;
-       __u32   connectSpeed;
-       __u16   packetWindow;
-       __u16   packetProcDelay;
-       __u32   physChannelID;
+       __be16  causeCode;
+       __be32  connectSpeed;
+       __be16  packetWindow;
+       __be16  packetProcDelay;
+       __be32  physChannelID;
 };
 
 struct PptpInCallRequest {
-       __u16   callID;
-       __u16   callSerialNumber;
-       __u32   callBearerType;
-       __u32   physChannelID;
-       __u16   dialedNumberLength;
-       __u16   dialingNumberLength;
+       __be16  callID;
+       __be16  callSerialNumber;
+       __be32  callBearerType;
+       __be32  physChannelID;
+       __be16  dialedNumberLength;
+       __be16  dialingNumberLength;
        __u8    dialedNumber[64];
        __u8    dialingNumber[64];
        __u8    subAddress[64];
@@ -234,54 +234,54 @@ struct PptpInCallRequest {
 #define PPTP_INCALL_DONT_ACCEPT                3
 
 struct PptpInCallReply {
-       __u16   callID;
-       __u16   peersCallID;
+       __be16  callID;
+       __be16  peersCallID;
        __u8    resultCode;
        __u8    generalErrorCode;
-       __u16   packetWindow;
-       __u16   packetProcDelay;
+       __be16  packetWindow;
+       __be16  packetProcDelay;
        __u16   reserved;
 };
 
 struct PptpInCallConnected {
-       __u16   peersCallID;
+       __be16  peersCallID;
        __u16   reserved;
-       __u32   connectSpeed;
-       __u16   packetWindow;
-       __u16   packetProcDelay;
-       __u32   callFramingType;
+       __be32  connectSpeed;
+       __be16  packetWindow;
+       __be16  packetProcDelay;
+       __be32  callFramingType;
 };
 
 struct PptpClearCallRequest {
-       __u16   callID;
+       __be16  callID;
        __u16   reserved;
 };
 
 struct PptpCallDisconnectNotify {
-       __u16   callID;
+       __be16  callID;
        __u8    resultCode;
        __u8    generalErrorCode;
-       __u16   causeCode;
+       __be16  causeCode;
        __u16   reserved;
        __u8    callStatistics[128];
 };
 
 struct PptpWanErrorNotify {
-       __u16   peersCallID;
+       __be16  peersCallID;
        __u16   reserved;
-       __u32   crcErrors;
-       __u32   framingErrors;
-       __u32   hardwareOverRuns;
-       __u32   bufferOverRuns;
-       __u32   timeoutErrors;
-       __u32   alignmentErrors;
+       __be32  crcErrors;
+       __be32  framingErrors;
+       __be32  hardwareOverRuns;
+       __be32  bufferOverRuns;
+       __be32  timeoutErrors;
+       __be32  alignmentErrors;
 };
 
 struct PptpSetLinkInfo {
-       __u16   peersCallID;
+       __be16  peersCallID;
        __u16   reserved;
-       __u32   sendAccm;
-       __u32   recvAccm;
+       __be32  sendAccm;
+       __be32  recvAccm;
 };
 
 
index 14dc0f7..20e43f0 100644 (file)
@@ -17,7 +17,7 @@ union ip_conntrack_manip_proto
        u_int16_t all;
 
        struct {
-               u_int16_t port;
+               __be16 port;
        } tcp;
        struct {
                u_int16_t port;
@@ -29,7 +29,7 @@ union ip_conntrack_manip_proto
                u_int16_t port;
        } sctp;
        struct {
-               u_int16_t key;  /* key is 32bit, pptp only uses 16 */
+               __be16 key;     /* key is 32bit, pptp only uses 16 */
        } gre;
 };
 
@@ -65,7 +65,7 @@ struct ip_conntrack_tuple
                                u_int16_t port;
                        } sctp;
                        struct {
-                               u_int16_t key;  /* key is 32bit, 
+                               __be16 key;     /* key is 32bit, 
                                                 * pptp only uses 16 */
                        } gre;
                } u;
index 1175879..8236ee0 100644 (file)
@@ -223,8 +223,8 @@ static void pptp_destroy_siblings(struct ip_conntrack *ct)
 static inline int
 exp_gre(struct ip_conntrack *master,
        u_int32_t seq,
-       u_int16_t callid,
-       u_int16_t peer_callid)
+       __be16 callid,
+       __be16 peer_callid)
 {
        struct ip_conntrack_tuple inv_tuple;
        struct ip_conntrack_tuple exp_tuples[] = {
@@ -263,7 +263,7 @@ exp_gre(struct ip_conntrack *master,
        exp_orig->mask.src.ip = 0xffffffff;
        exp_orig->mask.src.u.all = 0;
        exp_orig->mask.dst.u.all = 0;
-       exp_orig->mask.dst.u.gre.key = 0xffff;
+       exp_orig->mask.dst.u.gre.key = htons(0xffff);
        exp_orig->mask.dst.ip = 0xffffffff;
        exp_orig->mask.dst.protonum = 0xff;
                
@@ -340,7 +340,8 @@ pptp_inbound_pkt(struct sk_buff **pskb,
        unsigned int reqlen;
        union pptp_ctrl_union _pptpReq, *pptpReq;
        struct ip_ct_pptp_master *info = &ct->help.ct_pptp_info;
-       u_int16_t msg, *cid, *pcid;
+       u_int16_t msg;
+       __be16 *cid, *pcid;
        u_int32_t seq;  
 
        ctlh = skb_header_pointer(*pskb, nexthdr_off, sizeof(_ctlh), &_ctlh);
@@ -551,7 +552,8 @@ pptp_outbound_pkt(struct sk_buff **pskb,
        unsigned int reqlen;
        union pptp_ctrl_union _pptpReq, *pptpReq;
        struct ip_ct_pptp_master *info = &ct->help.ct_pptp_info;
-       u_int16_t msg, *cid, *pcid;
+       u_int16_t msg;
+       __be16 *cid, *pcid;
 
        ctlh = skb_header_pointer(*pskb, nexthdr_off, sizeof(_ctlh), &_ctlh);
        if (!ctlh)
@@ -755,7 +757,7 @@ static struct ip_conntrack_helper pptp = {
                          } 
                 },
        .mask = { .src = { .ip = 0, 
-                          .u = { .tcp = { .port = 0xffff } } 
+                          .u = { .tcp = { .port = __constant_htons(0xffff) } } 
                         }, 
                  .dst = { .ip = 0, 
                           .u = { .all = 0 },