aboutsummaryrefslogtreecommitdiff
path: root/net/ipv4/netfilter/arp_tables.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-04-13 18:20:16 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-04-13 18:20:16 -0700
commit2918cd81f58aa9748acf961240c006394f474047 (patch)
treec50c63a99c70766d83c561d018ffe29b775c0e53 /net/ipv4/netfilter/arp_tables.c
parent8a065975c1c00d1ab3293c1adf6f89988bb1b03b (diff)
parent49688c843101ba6275756505e81af45ef50f87d7 (diff)
downloadlinux-stericsson-2918cd81f58aa9748acf961240c006394f474047.tar.gz
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: [NETFILTER] arp_tables: Fix unaligned accesses. [IPV6] SNMP: Fix {In,Out}NoRoutes statistics. [IPSEC] XFRM_USER: kernel panic when large security contexts in ACQUIRE [VLAN]: Allow VLAN interface on top of bridge interface [PKTGEN]: Add try_to_freeze() [NETFILTER]: ipt_ULOG: use put_unaligned
Diffstat (limited to 'net/ipv4/netfilter/arp_tables.c')
-rw-r--r--net/ipv4/netfilter/arp_tables.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
index 5170f5c75f9d..57b0221f9e24 100644
--- a/net/ipv4/netfilter/arp_tables.c
+++ b/net/ipv4/netfilter/arp_tables.c
@@ -166,13 +166,9 @@ static inline int arp_packet_match(const struct arphdr *arphdr,
return 0;
}
- for (i = 0, ret = 0; i < IFNAMSIZ/sizeof(unsigned long); i++) {
- unsigned long odev;
- memcpy(&odev, outdev + i*sizeof(unsigned long),
- sizeof(unsigned long));
- ret |= (odev
- ^ ((const unsigned long *)arpinfo->outiface)[i])
- & ((const unsigned long *)arpinfo->outiface_mask)[i];
+ for (i = 0, ret = 0; i < IFNAMSIZ; i++) {
+ ret |= (outdev[i] ^ arpinfo->outiface[i])
+ & arpinfo->outiface_mask[i];
}
if (FWINV(ret != 0, ARPT_INV_VIA_OUT)) {