]> git.baikalelectronics.ru Git - kernel.git/commitdiff
net/mlx5e: Fix use-after-free when reverting termination table
authorRoi Dayan <roid@nvidia.com>
Mon, 14 Nov 2022 18:04:29 +0000 (20:04 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 8 Dec 2022 10:23:02 +0000 (11:23 +0100)
[ Upstream commit 52c795af04441d76f565c4634f893e5b553df2ae ]

When having multiple dests with termination tables and second one
or afterwards fails the driver reverts usage of term tables but
doesn't reset the assignment in attr->dests[num_vport_dests].termtbl
which case a use-after-free when releasing the rule.
Fix by resetting the assignment of termtbl to null.

Fixes: 11a71d9177e8 ("net/mlx5e: Use termination table for VLAN push actions")
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Maor Dickman <maord@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c

index 366bda1bb1c32edfaad041d0b158f160cdb591ed..c9115c0407ee7a8ac98a071b9b984d06798c5ba7 100644 (file)
@@ -267,6 +267,8 @@ revert_changes:
        for (curr_dest = 0; curr_dest < num_vport_dests; curr_dest++) {
                struct mlx5_termtbl_handle *tt = attr->dests[curr_dest].termtbl;
 
+               attr->dests[curr_dest].termtbl = NULL;
+
                /* search for the destination associated with the
                 * current term table
                 */