diff options
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 04b677ae8da..74f9b14c012 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; } } |