The member 'type' from struct 'nft_nat' is of type enum nf_nat_manip_type but at the switch statements for nft_nat_setup_netmap() and nft_nat_validate() functions the members from nft_nat_types enum were used instead. This does not cause any problem but is worth fixing for correctness. Signed-off-by: Fernando Fernandez Mancera --- Note: found this while working on something else but confused for a bit.. so I guess it is worth fixing. --- net/netfilter/nft_nat.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/netfilter/nft_nat.c b/net/netfilter/nft_nat.c index e32cd9fbc7c2..2691cfb10290 100644 --- a/net/netfilter/nft_nat.c +++ b/net/netfilter/nft_nat.c @@ -70,7 +70,7 @@ static void nft_nat_setup_netmap(struct nf_nat_range2 *range, int i, len = 0; switch (priv->type) { - case NFT_NAT_SNAT: + case NF_NAT_MANIP_SRC: if (nft_pf(pkt) == NFPROTO_IPV4) { new_addr.ip = ip_hdr(skb)->saddr; len = sizeof(struct in_addr); @@ -79,7 +79,7 @@ static void nft_nat_setup_netmap(struct nf_nat_range2 *range, len = sizeof(struct in6_addr); } break; - case NFT_NAT_DNAT: + case NF_NAT_MANIP_DST: if (nft_pf(pkt) == NFPROTO_IPV4) { new_addr.ip = ip_hdr(skb)->daddr; len = sizeof(struct in_addr); @@ -152,12 +152,12 @@ static int nft_nat_validate(const struct nft_ctx *ctx, return err; switch (priv->type) { - case NFT_NAT_SNAT: + case NF_NAT_MANIP_SRC: err = nft_chain_validate_hooks(ctx->chain, (1 << NF_INET_POST_ROUTING) | (1 << NF_INET_LOCAL_IN)); break; - case NFT_NAT_DNAT: + case NF_NAT_MANIP_DST: err = nft_chain_validate_hooks(ctx->chain, (1 << NF_INET_PRE_ROUTING) | (1 << NF_INET_LOCAL_OUT)); -- 2.55.0