From dc065d6efdf1cabe042944aac457fa19235ad632 Mon Sep 17 00:00:00 2001 From: Adham Masarwah Date: Wed, 23 Feb 2022 11:32:05 +0200 Subject: [PATCH] net/mlx5: fix destroying empty matchers list The table remove callback function is trying to destroy the matchers list associated with table entries without checking if the list is valid, which causes null pointer dereference. Fixed by validating the matchers list before destroying it. Issue can be reproduced with testpmd on Windows, when you run: port close all Fixes: 1872635570be ("net/mlx5: make matcher list thread safe") Cc: stable@dpdk.org Signed-off-by: Adham Masarwah Acked-by: Viacheslav Ovsiienko Acked-by: Tal Shnaiderman Tested-by: Idan Hackmon --- drivers/net/mlx5/mlx5_flow_dv.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index ae88a1cc29..caee0f7c91 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -10620,7 +10620,8 @@ flow_dv_tbl_remove_cb(void *tool_ctx, struct mlx5_list_entry *entry) tbl_data->tunnel->tunnel_id : 0, tbl_data->group_id); } - mlx5_list_destroy(tbl_data->matchers); + if (tbl_data->matchers) + mlx5_list_destroy(tbl_data->matchers); mlx5_ipool_free(sh->ipool[MLX5_IPOOL_JUMP], tbl_data->idx); } -- 2.20.1