Commit ffb3d9a3 authored by Florian Westphal's avatar Florian Westphal Committed by Pablo Neira Ayuso

netfilter: nf_tables: use correct integer types

Sparse tool complains about mixing of different endianess
types, so use the correct ones.

Add type casts where needed.

objdiff shows no changes except in nft_tunnel (type is changed).
Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent 7278b3c1
...@@ -125,13 +125,13 @@ static void nft_payload_n2h(union nft_cmp_offload_data *data, ...@@ -125,13 +125,13 @@ static void nft_payload_n2h(union nft_cmp_offload_data *data,
{ {
switch (len) { switch (len) {
case 2: case 2:
data->val16 = ntohs(*((u16 *)val)); data->val16 = ntohs(*((__be16 *)val));
break; break;
case 4: case 4:
data->val32 = ntohl(*((u32 *)val)); data->val32 = ntohl(*((__be32 *)val));
break; break;
case 8: case 8:
data->val64 = be64_to_cpu(*((u64 *)val)); data->val64 = be64_to_cpu(*((__be64 *)val));
break; break;
default: default:
WARN_ON_ONCE(1); WARN_ON_ONCE(1);
......
...@@ -204,12 +204,12 @@ static void nft_ct_get_eval(const struct nft_expr *expr, ...@@ -204,12 +204,12 @@ static void nft_ct_get_eval(const struct nft_expr *expr,
case NFT_CT_SRC_IP: case NFT_CT_SRC_IP:
if (nf_ct_l3num(ct) != NFPROTO_IPV4) if (nf_ct_l3num(ct) != NFPROTO_IPV4)
goto err; goto err;
*dest = tuple->src.u3.ip; *dest = (__force __u32)tuple->src.u3.ip;
return; return;
case NFT_CT_DST_IP: case NFT_CT_DST_IP:
if (nf_ct_l3num(ct) != NFPROTO_IPV4) if (nf_ct_l3num(ct) != NFPROTO_IPV4)
goto err; goto err;
*dest = tuple->dst.u3.ip; *dest = (__force __u32)tuple->dst.u3.ip;
return; return;
case NFT_CT_SRC_IP6: case NFT_CT_SRC_IP6:
if (nf_ct_l3num(ct) != NFPROTO_IPV6) if (nf_ct_l3num(ct) != NFPROTO_IPV6)
......
...@@ -266,7 +266,7 @@ static void nft_exthdr_tcp_set_eval(const struct nft_expr *expr, ...@@ -266,7 +266,7 @@ static void nft_exthdr_tcp_set_eval(const struct nft_expr *expr,
switch (priv->len) { switch (priv->len) {
case 2: case 2:
old.v16 = get_unaligned((u16 *)(opt + offset)); old.v16 = (__force __be16)get_unaligned((u16 *)(opt + offset));
new.v16 = (__force __be16)nft_reg_load16( new.v16 = (__force __be16)nft_reg_load16(
&regs->data[priv->sreg]); &regs->data[priv->sreg]);
...@@ -281,18 +281,18 @@ static void nft_exthdr_tcp_set_eval(const struct nft_expr *expr, ...@@ -281,18 +281,18 @@ static void nft_exthdr_tcp_set_eval(const struct nft_expr *expr,
if (old.v16 == new.v16) if (old.v16 == new.v16)
return; return;
put_unaligned(new.v16, (u16*)(opt + offset)); put_unaligned(new.v16, (__be16*)(opt + offset));
inet_proto_csum_replace2(&tcph->check, pkt->skb, inet_proto_csum_replace2(&tcph->check, pkt->skb,
old.v16, new.v16, false); old.v16, new.v16, false);
break; break;
case 4: case 4:
new.v32 = regs->data[priv->sreg]; new.v32 = nft_reg_load_be32(&regs->data[priv->sreg]);
old.v32 = get_unaligned((u32 *)(opt + offset)); old.v32 = (__force __be32)get_unaligned((u32 *)(opt + offset));
if (old.v32 == new.v32) if (old.v32 == new.v32)
return; return;
put_unaligned(new.v32, (u32*)(opt + offset)); put_unaligned(new.v32, (__be32*)(opt + offset));
inet_proto_csum_replace4(&tcph->check, pkt->skb, inet_proto_csum_replace4(&tcph->check, pkt->skb,
old.v32, new.v32, false); old.v32, new.v32, false);
break; break;
......
...@@ -383,8 +383,9 @@ static int nft_tunnel_obj_opts_init(const struct nft_ctx *ctx, ...@@ -383,8 +383,9 @@ static int nft_tunnel_obj_opts_init(const struct nft_ctx *ctx,
struct ip_tunnel_info *info, struct ip_tunnel_info *info,
struct nft_tunnel_opts *opts) struct nft_tunnel_opts *opts)
{ {
int err, rem, type = 0;
struct nlattr *nla; struct nlattr *nla;
__be16 type = 0;
int err, rem;
err = nla_validate_nested_deprecated(attr, NFTA_TUNNEL_KEY_OPTS_MAX, err = nla_validate_nested_deprecated(attr, NFTA_TUNNEL_KEY_OPTS_MAX,
nft_tunnel_opts_policy, NULL); nft_tunnel_opts_policy, NULL);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment