]> git.droids-corp.org - dpdk.git/commitdiff
net/mlx5: fix destroying empty matchers list
authorAdham Masarwah <adham@nvidia.com>
Wed, 23 Feb 2022 09:32:05 +0000 (11:32 +0200)
committerRaslan Darawsheh <rasland@nvidia.com>
Tue, 1 Mar 2022 21:24:36 +0000 (22:24 +0100)
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 <adham@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Tal Shnaiderman <talshn@nvidia.com>
Tested-by: Idan Hackmon <idanhac@nvidia.com>
drivers/net/mlx5/mlx5_flow_dv.c

index ae88a1cc29229ead8cb0b86c3aafbb3866c9b50e..caee0f7c915eb782a3b4d5cf1814936a2faab7a6 100644 (file)
@@ -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);
 }