diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index 936dc1dad2c3ce84656fdae24ee35ef9c47f7952..2b7a71032a85cf91a26b4034f55a84a0bb08a723 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -3364,7 +3364,8 @@ static int nf_tables_newrule(struct net *net, struct sock *nlsk, return 0; err2: - nf_tables_rule_release(&ctx, rule); + nft_rule_expr_deactivate(&ctx, rule, NFT_TRANS_PREPARE); + nf_tables_rule_destroy(&ctx, rule); err1: for (i = 0; i < n; i++) { if (info[i].ops) {