netfilter: nf_tables: warn when expr implements only one of activate/deactivate
authorFlorian Westphal <fw@strlen.de>
Thu, 30 Aug 2018 08:42:55 +0000 (10:42 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 May 2019 17:42:30 +0000 (19:42 +0200)
commitf11935ef2388eae581f1cc2ff59ea90840120fa6
tree559d162367344609d9e8493290807cf4e4b1856e
parentf764686fc0f7e5951289aeb84ec15b328a873933
netfilter: nf_tables: warn when expr implements only one of activate/deactivate

[ Upstream commit 0ef235c71755c5f36c50282fcf2d7d08709be344 ]

->destroy is only allowed to free data, or do other cleanups that do not
have side effects on other state, such as visibility to other netlink
requests.

Such things need to be done in ->deactivate.
As a transaction can fail, we need to make sure we can undo such
operations, therefore ->activate() has to be provided too.

So print a warning and refuse registration if expr->ops provides
only one of the two operations.

v2: fix nft_expr_check_ops to not repeat same check twice (Jones Desougi)

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
net/netfilter/nf_tables_api.c