mlxsw: spectrum_router: Fix NULL pointer deref
authorIdo Schimmel <idosch@mellanox.com>
Mon, 25 Dec 2017 07:57:35 +0000 (08:57 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 2 Jan 2018 17:37:16 +0000 (12:37 -0500)
When we remove the neighbour associated with a nexthop we should always
refuse to write the nexthop to the adjacency table. Regardless if it is
already present in the table or not.

Otherwise, we risk dereferencing the NULL pointer that was set instead
of the neighbour.

Fixes: a7ff87acd995 ("mlxsw: spectrum_router: Implement next-hop routing")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reported-by: Alexander Petrovskiy <alexpe@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c

index be657b8533f04922a61a2f3a4b1aeddf3137cdf5..434b3922b34f06689e3e85c0dc70810902c51275 100644 (file)
@@ -3228,7 +3228,7 @@ static void __mlxsw_sp_nexthop_neigh_update(struct mlxsw_sp_nexthop *nh,
 {
        if (!removing)
                nh->should_offload = 1;
-       else if (nh->offloaded)
+       else
                nh->should_offload = 0;
        nh->update = 1;
 }