mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-10 14:43:54 +08:00
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: Florian Westphal <fw@strlen.de> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
parent
7278b3c1e4
commit
ffb3d9a30c
@ -125,13 +125,13 @@ static void nft_payload_n2h(union nft_cmp_offload_data *data,
|
||||
{
|
||||
switch (len) {
|
||||
case 2:
|
||||
data->val16 = ntohs(*((u16 *)val));
|
||||
data->val16 = ntohs(*((__be16 *)val));
|
||||
break;
|
||||
case 4:
|
||||
data->val32 = ntohl(*((u32 *)val));
|
||||
data->val32 = ntohl(*((__be32 *)val));
|
||||
break;
|
||||
case 8:
|
||||
data->val64 = be64_to_cpu(*((u64 *)val));
|
||||
data->val64 = be64_to_cpu(*((__be64 *)val));
|
||||
break;
|
||||
default:
|
||||
WARN_ON_ONCE(1);
|
||||
|
@ -204,12 +204,12 @@ static void nft_ct_get_eval(const struct nft_expr *expr,
|
||||
case NFT_CT_SRC_IP:
|
||||
if (nf_ct_l3num(ct) != NFPROTO_IPV4)
|
||||
goto err;
|
||||
*dest = tuple->src.u3.ip;
|
||||
*dest = (__force __u32)tuple->src.u3.ip;
|
||||
return;
|
||||
case NFT_CT_DST_IP:
|
||||
if (nf_ct_l3num(ct) != NFPROTO_IPV4)
|
||||
goto err;
|
||||
*dest = tuple->dst.u3.ip;
|
||||
*dest = (__force __u32)tuple->dst.u3.ip;
|
||||
return;
|
||||
case NFT_CT_SRC_IP6:
|
||||
if (nf_ct_l3num(ct) != NFPROTO_IPV6)
|
||||
|
@ -266,7 +266,7 @@ static void nft_exthdr_tcp_set_eval(const struct nft_expr *expr,
|
||||
|
||||
switch (priv->len) {
|
||||
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(
|
||||
®s->data[priv->sreg]);
|
||||
|
||||
@ -281,18 +281,18 @@ static void nft_exthdr_tcp_set_eval(const struct nft_expr *expr,
|
||||
if (old.v16 == new.v16)
|
||||
return;
|
||||
|
||||
put_unaligned(new.v16, (u16*)(opt + offset));
|
||||
put_unaligned(new.v16, (__be16*)(opt + offset));
|
||||
inet_proto_csum_replace2(&tcph->check, pkt->skb,
|
||||
old.v16, new.v16, false);
|
||||
break;
|
||||
case 4:
|
||||
new.v32 = regs->data[priv->sreg];
|
||||
old.v32 = get_unaligned((u32 *)(opt + offset));
|
||||
new.v32 = nft_reg_load_be32(®s->data[priv->sreg]);
|
||||
old.v32 = (__force __be32)get_unaligned((u32 *)(opt + offset));
|
||||
|
||||
if (old.v32 == new.v32)
|
||||
return;
|
||||
|
||||
put_unaligned(new.v32, (u32*)(opt + offset));
|
||||
put_unaligned(new.v32, (__be32*)(opt + offset));
|
||||
inet_proto_csum_replace4(&tcph->check, pkt->skb,
|
||||
old.v32, new.v32, false);
|
||||
break;
|
||||
|
@ -383,8 +383,9 @@ static int nft_tunnel_obj_opts_init(const struct nft_ctx *ctx,
|
||||
struct ip_tunnel_info *info,
|
||||
struct nft_tunnel_opts *opts)
|
||||
{
|
||||
int err, rem, type = 0;
|
||||
struct nlattr *nla;
|
||||
__be16 type = 0;
|
||||
int err, rem;
|
||||
|
||||
err = nla_validate_nested_deprecated(attr, NFTA_TUNNEL_KEY_OPTS_MAX,
|
||||
nft_tunnel_opts_policy, NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user