aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter/xt_u32.c
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2007-07-26 17:33:19 +0100
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-26 11:11:56 -0700
commita34c45896a723ee7b13128ac8bf564ea42fcd1eb (patch)
tree0b898fb2e780cb0a11a44c347745f2cb2f4a78af /net/netfilter/xt_u32.c
parente0e5de00b0ee5a3b652d829f2c1e89265e9c6a99 (diff)
downloadkernel_samsung_smdk4412-a34c45896a723ee7b13128ac8bf564ea42fcd1eb.zip
kernel_samsung_smdk4412-a34c45896a723ee7b13128ac8bf564ea42fcd1eb.tar.gz
kernel_samsung_smdk4412-a34c45896a723ee7b13128ac8bf564ea42fcd1eb.tar.bz2
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.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/net/netfilter/xt_u32.c b/net/netfilter/xt_u32.c
index 04b677a..74f9b14 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;
}
}