ibv_attr should be freed in the function which allocates the memory. Fixes: 2097d0d1e2cc ("net/mlx5: support basic flow items and actions")
CC: sta...@dpdk.org Signed-off-by: Nelio Laranjeiro <nelio.laranje...@6wind.com> --- drivers/net/mlx5/mlx5_flow.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 6765a77..0712926 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -974,7 +974,6 @@ priv_flow_create_action_queue(struct priv *priv, ibv_exp_destroy_wq(rte_flow->wq); if (!rte_flow->rxq && rte_flow->cq) ibv_destroy_cq(rte_flow->cq); - rte_free(rte_flow->ibv_attr); rte_free(rte_flow); return NULL; } @@ -1068,6 +1067,8 @@ priv_flow_create(struct priv *priv, } rte_flow = priv_flow_create_action_queue(priv, flow.ibv_attr, &action, error); + if (!rte_flow) + goto exit; return rte_flow; exit: rte_free(flow.ibv_attr); -- 2.1.4