On Tue, Feb 12, 2019 at 09:00:48PM +0100, Pablo Neira Ayuso wrote:
> @@ -324,8 +297,10 @@ nft_target_destroy(const struct nft_ctx *ctx, const 
> struct nft_expr *expr)
>       if (par.target->destroy != NULL)
>               par.target->destroy(&par);
>  
> -     if (nft_xt_put(container_of(expr->ops, struct nft_xt, ops)))
> +     if (refcount_read(&xt->refcnt) == 0) {
>               module_put(target->me);
> +             kfree(xt);
> +     }
>  }

This leads to multiple-kfree calls in case there are multiple rules
that refers to this extension, this will not work.

Reply via email to