netfilter: nft_nat: allow to specify layer 4 protocol NAT only

nft_nat reports a bogus EAFNOSUPPORT if no layer 3 information is specified.

Fixes: d07db9884a ("netfilter: nf_tables: introduce nft_validate_register_load()")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
Pablo Neira Ayuso 2021-07-20 18:22:50 +02:00
Родитель 30a56a2b88
Коммит a33f387ecd
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -201,7 +201,9 @@ static int nft_nat_init(const struct nft_ctx *ctx, const struct nft_expr *expr,
alen = sizeof_field(struct nf_nat_range, min_addr.ip6); alen = sizeof_field(struct nf_nat_range, min_addr.ip6);
break; break;
default: default:
return -EAFNOSUPPORT; if (tb[NFTA_NAT_REG_ADDR_MIN])
return -EAFNOSUPPORT;
break;
} }
priv->family = family; priv->family = family;