lkml.org 
[lkml]   [2019]   [Aug]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.19 52/68] net: cxgb3_main: Fix a resource leak in a error path in 'init_one()'
    Date
    From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

    [ Upstream commit debea2cd3193ac868289e8893c3a719c265b0612 ]

    A call to 'kfree_skb()' is missing in the error handling path of
    'init_one()'.
    This is already present in 'remove_one()' but is missing here.

    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
    index c34ea385fe4a5..6be6de0774b61 100644
    --- a/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
    +++ b/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c
    @@ -3270,7 +3270,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
    if (!adapter->regs) {
    dev_err(&pdev->dev, "cannot map device registers\n");
    err = -ENOMEM;
    - goto out_free_adapter;
    + goto out_free_adapter_nofail;
    }

    adapter->pdev = pdev;
    @@ -3398,6 +3398,9 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
    if (adapter->port[i])
    free_netdev(adapter->port[i]);

    +out_free_adapter_nofail:
    + kfree_skb(adapter->nofail_skb);
    +
    out_free_adapter:
    kfree(adapter);

    --
    2.20.1
    \
     
     \ /
      Last update: 2019-08-14 04:27    [W:2.300 / U:0.208 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site