net/thunderx: fix memory leak when allocate rbdr desc ring fails
Checks
Commit Message
From: Yunjian Wang <wangyunjian@huawei.com>
In nicvf_qset_rbdr_alloc(), we allocate memory for the 'rbdr'
structure but not released when allocate 'rbdr desc ring' fails.
Fixes: 7413feee662d ("net/thunderx: add device start/stop and close")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
---
drivers/net/thunderx/nicvf_ethdev.c | 1 +
1 file changed, 1 insertion(+)
Comments
On Tue, Oct 20, 2020 at 8:33 PM wangyunjian <wangyunjian@huawei.com> wrote:
>
> From: Yunjian Wang <wangyunjian@huawei.com>
>
> In nicvf_qset_rbdr_alloc(), we allocate memory for the 'rbdr'
> structure but not released when allocate 'rbdr desc ring' fails.
>
> Fixes: 7413feee662d ("net/thunderx: add device start/stop and close")
> Cc: stable@dpdk.org
>
> Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
Applied to dpdk-next-net-mrvl/for-main. Thanks
> ---
> drivers/net/thunderx/nicvf_ethdev.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c
> index f0bd20a22b..b6bb05e500 100644
> --- a/drivers/net/thunderx/nicvf_ethdev.c
> +++ b/drivers/net/thunderx/nicvf_ethdev.c
> @@ -638,6 +638,7 @@ nicvf_qset_rbdr_alloc(struct rte_eth_dev *dev, struct nicvf *nic,
> NICVF_RBDR_BASE_ALIGN_BYTES, nic->node);
> if (rz == NULL) {
> PMD_INIT_LOG(ERR, "Failed to allocate mem for rbdr desc ring");
> + rte_free(rbdr);
> return -ENOMEM;
> }
>
> --
> 2.23.0
>
@@ -638,6 +638,7 @@ nicvf_qset_rbdr_alloc(struct rte_eth_dev *dev, struct nicvf *nic,
NICVF_RBDR_BASE_ALIGN_BYTES, nic->node);
if (rz == NULL) {
PMD_INIT_LOG(ERR, "Failed to allocate mem for rbdr desc ring");
+ rte_free(rbdr);
return -ENOMEM;
}