This makes sure that the allocated matcher object is freed
for all branches that return NULL.

Coverity issue: 426424
Fixes: 27d171b88031 ("net/mlx5: abstract flow action and enable reconfigure")
Cc: mkash...@nvidia.com

Signed-off-by: Mahmoud Maatuq <mahmoudmatook...@gmail.com>
---
v3:
* changed commit message.
* fixed typos
v2:
* fixed Fixes and Cc tags.
---
 drivers/net/mlx5/mlx5_flow_dv.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index d46beffd4c..8a0d58cb05 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -12010,9 +12010,12 @@ flow_matcher_create_cb(void *tool_ctx, void *cb_ctx)
                items = *((const struct rte_flow_item **)(ctx->data2));
                resource->matcher_object = mlx5dr_bwc_matcher_create
                                (resource->group->tbl, resource->priority, 
items);
-               if (!(resource->matcher_object))
+               if (!resource->matcher_object) {
+                       mlx5_free(resource);
                        return NULL;
+               }
 #else
+               mlx5_free(resource);
                return NULL;
 #endif
        }
--
2.43.0

Reply via email to