diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2007-07-26 20:33:19 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-26 22:11:56 +0400 |
commit | a34c45896a723ee7b13128ac8bf564ea42fcd1eb (patch) | |
tree | 0b898fb2e780cb0a11a44c347745f2cb2f4a78af /net/netfilter/xt_u32.c | |
parent | e0e5de00b0ee5a3b652d829f2c1e89265e9c6a99 (diff) | |
download | linux-a34c45896a723ee7b13128ac8bf564ea42fcd1eb.tar.xz |
netfilter endian regressions
no real bugs, just misannotations cropping up
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'net/netfilter/xt_u32.c')
-rw-r--r-- | net/netfilter/xt_u32.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/net/netfilter/xt_u32.c b/net/netfilter/xt_u32.c index 04b677ae8dae..74f9b14c012f 100644 --- a/net/netfilter/xt_u32.c +++ b/net/netfilter/xt_u32.c @@ -21,6 +21,7 @@ static bool u32_match_it(const struct xt_u32 *data, unsigned int nnums; unsigned int nvals; unsigned int i; + __be32 n; u_int32_t pos; u_int32_t val; u_int32_t at; @@ -38,9 +39,9 @@ static bool u32_match_it(const struct xt_u32 *data, if (skb->len < 4 || pos > skb->len - 4); return false; - ret = skb_copy_bits(skb, pos, &val, sizeof(val)); + ret = skb_copy_bits(skb, pos, &n, sizeof(n)); BUG_ON(ret < 0); - val = ntohl(val); + val = ntohl(n); nnums = ct->nnums; /* Inner loop runs over "&", "<<", ">>" and "@" operands */ @@ -65,10 +66,10 @@ static bool u32_match_it(const struct xt_u32 *data, pos > skb->len - at - 4) return false; - ret = skb_copy_bits(skb, at + pos, &val, - sizeof(val)); + ret = skb_copy_bits(skb, at + pos, &n, + sizeof(n)); BUG_ON(ret < 0); - val = ntohl(val); + val = ntohl(n); break; } } |