diff options
author | Jan Engelhardt <jengelh@computergmbh.de> | 2008-02-19 20:20:06 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-19 20:20:06 -0500 |
commit | 27ecb1ff0afa2260e6856c05efd6fedcd0cc76b9 (patch) | |
tree | 0fe60b33e9479ed8fe8e98b2f9860e8ffef0a312 | |
parent | 7d9904c2604ce091c97c225b5e2f92f3e7cc2e3a (diff) |
[NETFILTER]: xt_iprange: fix subtraction-based comparison
The host address parts need to be converted to host-endian first
before arithmetic makes any sense on them.
Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/netfilter/xt_iprange.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/netfilter/xt_iprange.c b/net/netfilter/xt_iprange.c index 4f984dc60319..500528d60cd7 100644 --- a/net/netfilter/xt_iprange.c +++ b/net/netfilter/xt_iprange.c | |||
@@ -102,7 +102,7 @@ iprange_ipv6_sub(const struct in6_addr *a, const struct in6_addr *b) | |||
102 | int r; | 102 | int r; |
103 | 103 | ||
104 | for (i = 0; i < 4; ++i) { | 104 | for (i = 0; i < 4; ++i) { |
105 | r = (__force u32)a->s6_addr32[i] - (__force u32)b->s6_addr32[i]; | 105 | r = ntohl(a->s6_addr32[i]) - ntohl(b->s6_addr32[i]); |
106 | if (r != 0) | 106 | if (r != 0) |
107 | return r; | 107 | return r; |
108 | } | 108 | } |