Commit b85e5b29 authored by Bart De Schuymer's avatar Bart De Schuymer Committed by David S. Miller

[NETFILTER]: Fix parisc64 alignment problems in ipt_physdev.c

parent 7ce7eed5
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
#define IPT_PHYSDEV_OP_MASK (0x20 - 1) #define IPT_PHYSDEV_OP_MASK (0x20 - 1)
struct ipt_physdev_info { struct ipt_physdev_info {
u_int8_t invert;
u_int8_t bitmask;
char physindev[IFNAMSIZ]; char physindev[IFNAMSIZ];
char in_mask[IFNAMSIZ]; char in_mask[IFNAMSIZ];
char physoutdev[IFNAMSIZ]; char physoutdev[IFNAMSIZ];
char out_mask[IFNAMSIZ]; char out_mask[IFNAMSIZ];
u_int8_t invert;
u_int8_t bitmask;
}; };
#endif /*_IPT_PHYSDEV_H*/ #endif /*_IPT_PHYSDEV_H*/
...@@ -23,7 +23,7 @@ match(const struct sk_buff *skb, ...@@ -23,7 +23,7 @@ match(const struct sk_buff *skb,
int i; int i;
static const char nulldevname[IFNAMSIZ]; static const char nulldevname[IFNAMSIZ];
const struct ipt_physdev_info *info = matchinfo; const struct ipt_physdev_info *info = matchinfo;
unsigned long ret; unsigned int ret;
const char *indev, *outdev; const char *indev, *outdev;
struct nf_bridge_info *nf_bridge; struct nf_bridge_info *nf_bridge;
...@@ -65,10 +65,10 @@ match(const struct sk_buff *skb, ...@@ -65,10 +65,10 @@ match(const struct sk_buff *skb,
if (!(info->bitmask & IPT_PHYSDEV_OP_IN)) if (!(info->bitmask & IPT_PHYSDEV_OP_IN))
goto match_outdev; goto match_outdev;
indev = nf_bridge->physindev ? nf_bridge->physindev->name : nulldevname; indev = nf_bridge->physindev ? nf_bridge->physindev->name : nulldevname;
for (i = 0, ret = 0; i < IFNAMSIZ/sizeof(unsigned long); i++) { for (i = 0, ret = 0; i < IFNAMSIZ/sizeof(unsigned int); i++) {
ret |= (((const unsigned long *)indev)[i] ret |= (((const unsigned int *)indev)[i]
^ ((const unsigned long *)info->physindev)[i]) ^ ((const unsigned int *)info->physindev)[i])
& ((const unsigned long *)info->in_mask)[i]; & ((const unsigned int *)info->in_mask)[i];
} }
if ((ret == 0) ^ !(info->invert & IPT_PHYSDEV_OP_IN)) if ((ret == 0) ^ !(info->invert & IPT_PHYSDEV_OP_IN))
...@@ -79,10 +79,10 @@ match(const struct sk_buff *skb, ...@@ -79,10 +79,10 @@ match(const struct sk_buff *skb,
return MATCH; return MATCH;
outdev = nf_bridge->physoutdev ? outdev = nf_bridge->physoutdev ?
nf_bridge->physoutdev->name : nulldevname; nf_bridge->physoutdev->name : nulldevname;
for (i = 0, ret = 0; i < IFNAMSIZ/sizeof(unsigned long); i++) { for (i = 0, ret = 0; i < IFNAMSIZ/sizeof(unsigned int); i++) {
ret |= (((const unsigned long *)outdev)[i] ret |= (((const unsigned int *)outdev)[i]
^ ((const unsigned long *)info->physoutdev)[i]) ^ ((const unsigned int *)info->physoutdev)[i])
& ((const unsigned long *)info->out_mask)[i]; & ((const unsigned int *)info->out_mask)[i];
} }
return (ret != 0) ^ !(info->invert & IPT_PHYSDEV_OP_OUT); return (ret != 0) ^ !(info->invert & IPT_PHYSDEV_OP_OUT);
......
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