mlxsw: spectrum_cnt: Use flex_array_size() helper in memcpy()
Subsystems (3)
PATCH 1/1 mlxsw: spectrum_cnt: Use flex_array_size() helper in memcpy()
Make use of the flex_array_size() helper to calculate the size of a flexible array member within an enclosing structure.
This helper offers defense-in-depth against potential integer overflows, while at the same time makes it explicitly clear that we are dealing witha flexible array member.
Also, remove unnecessary pointer identifier sub_pool.
--- drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)
drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c +2 -3
@@ -121,7 +121,6 @@ int mlxsw_sp_counter_pool_init(struct mlxsw_sp *mlxsw_sp) {unsigned int sub_pools_count =ARRAY_SIZE (mlxsw_sp_counter_sub_pools);struct devlink *devlink =priv_to_devlink (mlxsw_sp->core); -struct mlxsw_sp_counter_sub_pool *sub_pool;struct mlxsw_sp_counter_pool *pool;unsigned int map_size;int err;
@@ -131,9 +130,9 @@ int mlxsw_sp_counter_pool_init(struct mlxsw_sp *mlxsw_sp)if (!pool)return -ENOMEM ; mlxsw_sp->counter_pool = pool; -memcpy (pool->sub_pools, mlxsw_sp_counter_sub_pools, - sub_pools_count *sizeof (*sub_pool)); pool->sub_pools_count = sub_pools_count; +memcpy (pool->sub_pools, mlxsw_sp_counter_sub_pools, +flex_array_size (pool, sub_pools, pool->sub_pools_count));spin_lock_init (&pool->counter_pool_lock);atomic_set (&pool->active_entries_count,0 );
Signature · 1 line
2.27.0
Quoted 10 lines · Gustavo A. R. Silva
Make use of the
flex_array_size()helper to calculate the size of a flexible array member within an enclosing structure.This helper offers defense-in-depth against potential integer overflows, while at the same time makes it explicitly clear that we are dealing witha flexible array member.
Also, remove unnecessary pointer identifier
sub_pool.Signed-off-by Gustavo A. R. Silva <[email protected]>
Thanks
Quoted 8 lines · Ido Schimmel
Quoted 7 lines · Gustavo A. R. Silva
Make use of the
flex_array_size()helper to calculate the size of a flexible array member within an enclosing structure.This helper offers defense-in-depth against potential integer overflows, while at the same time makes it explicitly clear that we are dealing witha flexible array member.
Quoted 7 lines
Quoted 3 lines
Also, remove unnecessary pointer identifier
sub_pool.Signed-off-by Gustavo A. R. Silva <[email protected]>Reviewed-by Ido Schimmel <[email protected]>Tested-by Ido Schimmel <[email protected]>
Thanks, Ido.
--
Gustavo
From: "Gustavo A. R. Silva" <[email protected]>
Date: Wed, 29 Jul 2020 17:58:03 -0500
Quoted 10 lines
Make use of the
flex_array_size()helper to calculate the size of a flexible array member within an enclosing structure.This helper offers defense-in-depth against potential integer overflows, while at the same time makes it explicitly clear that we are dealing witha flexible array member.
Also, remove unnecessary pointer identifier
sub_pool.Signed-off-by Gustavo A. R. Silva <[email protected]>
Applied.