lkml.org 
[lkml]   [2022]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 166/298] netfilter: nf_tables: memleak flow rule from commit path
    Date
    From: Pablo Neira Ayuso <pablo@netfilter.org>

    [ Upstream commit 9dd732e0bdf538b1b76dc7c157e2b5e560ff30d3 ]

    Abort path release flow rule object, however, commit path does not.
    Update code to destroy these objects before releasing the transaction.

    Fixes: c9626a2cbdb2 ("netfilter: nf_tables: add hardware offload support")
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/netfilter/nf_tables_api.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
    index 2abad256f0aa..5a2d585e180c 100644
    --- a/net/netfilter/nf_tables_api.c
    +++ b/net/netfilter/nf_tables_api.c
    @@ -8244,6 +8244,9 @@ static void nft_commit_release(struct nft_trans *trans)
    nf_tables_chain_destroy(&trans->ctx);
    break;
    case NFT_MSG_DELRULE:
    + if (trans->ctx.chain->flags & NFT_CHAIN_HW_OFFLOAD)
    + nft_flow_rule_destroy(nft_trans_flow_rule(trans));
    +
    nf_tables_rule_destroy(&trans->ctx, nft_trans_rule(trans));
    break;
    case NFT_MSG_DELSET:
    @@ -8734,6 +8737,9 @@ static int nf_tables_commit(struct net *net, struct sk_buff *skb)
    nf_tables_rule_notify(&trans->ctx,
    nft_trans_rule(trans),
    NFT_MSG_NEWRULE);
    + if (trans->ctx.chain->flags & NFT_CHAIN_HW_OFFLOAD)
    + nft_flow_rule_destroy(nft_trans_flow_rule(trans));
    +
    nft_trans_destroy(trans);
    break;
    case NFT_MSG_DELRULE:
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-13 16:32    [W:2.703 / U:0.552 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site