]> git.baikalelectronics.ru Git - kernel.git/commitdiff
netfilter: nf_tables: release new hooks on unsupported flowtable flags
authorPablo Neira Ayuso <pablo@netfilter.org>
Sun, 5 Jun 2022 11:40:06 +0000 (13:40 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 6 Jun 2022 15:31:46 +0000 (17:31 +0200)
Release the list of new hooks that are pending to be registered in case
that unsupported flowtable flags are provided.

Fixes: 48f46b44a4ef ("netfilter: nf_tables: add devices to existing flowtable")
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_tables_api.c

index 2faa77cd2fe250741cf3ce5a7264ac0715d48233..252796a99f5e4ffb33ee98ae30ab9078c34230cd 100644 (file)
@@ -7433,11 +7433,15 @@ static int nft_flowtable_update(struct nft_ctx *ctx, const struct nlmsghdr *nlh,
 
        if (nla[NFTA_FLOWTABLE_FLAGS]) {
                flags = ntohl(nla_get_be32(nla[NFTA_FLOWTABLE_FLAGS]));
-               if (flags & ~NFT_FLOWTABLE_MASK)
-                       return -EOPNOTSUPP;
+               if (flags & ~NFT_FLOWTABLE_MASK) {
+                       err = -EOPNOTSUPP;
+                       goto err_flowtable_update_hook;
+               }
                if ((flowtable->data.flags & NFT_FLOWTABLE_HW_OFFLOAD) ^
-                   (flags & NFT_FLOWTABLE_HW_OFFLOAD))
-                       return -EOPNOTSUPP;
+                   (flags & NFT_FLOWTABLE_HW_OFFLOAD)) {
+                       err = -EOPNOTSUPP;
+                       goto err_flowtable_update_hook;
+               }
        } else {
                flags = flowtable->data.flags;
        }