]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commit
netfilter: nft_compat: use .release_ops and remove list of extension
authorPablo Neira Ayuso <pablo@netfilter.org>
Wed, 13 Feb 2019 12:18:36 +0000 (13:18 +0100)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 27 Feb 2019 09:41:24 +0000 (10:41 +0100)
commitb8e204006340b7aaf32bd2b9806c692f6e0cb38a
tree0fc41be04455ce2cb1f19a6c9f5203fb8e92df5e
parentff8285f81822dc8f528b36b6c5c8ab132367e92d
netfilter: nft_compat: use .release_ops and remove list of extension

Add .release_ops, that is called in case of error at a later stage in
the expression initialization path, ie. .select_ops() has been already
set up operations and that needs to be undone. This allows us to unwind
.select_ops from the error path, ie. release the dynamic operations for
this extension.

Moreover, allocate one single operation instead of recycling them, this
comes at the cost of consuming a bit more memory per rule, but it
simplifies the infrastructure.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
include/net/netfilter/nf_tables.h
net/netfilter/nf_tables_api.c
net/netfilter/nft_compat.c