From: Adham Masarwah Date: Wed, 23 Feb 2022 09:32:05 +0000 (+0200) Subject: net/mlx5: fix destroying empty matchers list X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=dc065d6efdf1cabe042944aac457fa19235ad632;p=dpdk.git 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 --- 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); }