• Florian Westphal's avatar
    netfilter: nf_tables: fix memory leak during stateful obj update · dad3bdee
    Florian Westphal authored
    stateful objects can be updated from the control plane.
    The transaction logic allocates a temporary object for this purpose.
    
    The ->init function was called for this object, so plain kfree() leaks
    resources. We must call ->destroy function of the object.
    
    nft_obj_destroy does this, but it also decrements the module refcount,
    but the update path doesn't increment it.
    
    To avoid special-casing the update object release, do module_get for
    the update case too and release it via nft_obj_destroy().
    
    Fixes: d62d0ba9 ("netfilter: nf_tables: Introduce stateful object update operation")
    Cc: Fernando Fernandez Mancera <ffmancera@riseup.net>
    Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    dad3bdee
nf_tables_api.c 240 KB