ibv_attr should be freed in the function which allocates the memory.
Fixes: 2097d0d1e2cc ("net/mlx5: support basic flow items and actions")
CC: [email protected]
Signed-off-by: Nelio Laranjeiro <[email protected]>
---
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