linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH][next] mlxsw: spectrum_cnt: Use flex_array_size() helper in memcpy()
@ 2020-07-29 22:58 Gustavo A. R. Silva
  2020-07-30  9:21 ` Ido Schimmel
  2020-07-31  0:39 ` David Miller
  0 siblings, 2 replies; 4+ messages in thread
From: Gustavo A. R. Silva @ 2020-07-29 22:58 UTC (permalink / raw)
  To: Jiri Pirko, Ido Schimmel, David S. Miller, Jakub Kicinski
  Cc: netdev, linux-kernel, 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 <gustavoars@kernel.org>
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c
index 7974982533b5..b65b93a2b9bc 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_cnt.c
@@ -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);
 
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH][next] mlxsw: spectrum_cnt: Use flex_array_size() helper in memcpy()
  2020-07-29 22:58 [PATCH][next] mlxsw: spectrum_cnt: Use flex_array_size() helper in memcpy() Gustavo A. R. Silva
@ 2020-07-30  9:21 ` Ido Schimmel
  2020-07-30 13:30   ` Gustavo A. R. Silva
  2020-07-31  0:39 ` David Miller
  1 sibling, 1 reply; 4+ messages in thread
From: Ido Schimmel @ 2020-07-30  9:21 UTC (permalink / raw)
  To: Gustavo A. R. Silva
  Cc: Jiri Pirko, Ido Schimmel, David S. Miller, Jakub Kicinski,
	netdev, linux-kernel

On Wed, Jul 29, 2020 at 05:58:03PM -0500, Gustavo A. R. Silva wrote:
> 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 <gustavoars@kernel.org>

Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Tested-by: Ido Schimmel <idosch@mellanox.com>

Thanks

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH][next] mlxsw: spectrum_cnt: Use flex_array_size() helper in memcpy()
  2020-07-30  9:21 ` Ido Schimmel
@ 2020-07-30 13:30   ` Gustavo A. R. Silva
  0 siblings, 0 replies; 4+ messages in thread
From: Gustavo A. R. Silva @ 2020-07-30 13:30 UTC (permalink / raw)
  To: Ido Schimmel, Gustavo A. R. Silva
  Cc: Jiri Pirko, Ido Schimmel, David S. Miller, Jakub Kicinski,
	netdev, linux-kernel



On 7/30/20 04:21, Ido Schimmel wrote:
> On Wed, Jul 29, 2020 at 05:58:03PM -0500, Gustavo A. R. Silva wrote:
>> 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 <gustavoars@kernel.org>
> 
> Reviewed-by: Ido Schimmel <idosch@mellanox.com>
> Tested-by: Ido Schimmel <idosch@mellanox.com>
> 

Thanks, Ido.

--
Gustavo

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH][next] mlxsw: spectrum_cnt: Use flex_array_size() helper in memcpy()
  2020-07-29 22:58 [PATCH][next] mlxsw: spectrum_cnt: Use flex_array_size() helper in memcpy() Gustavo A. R. Silva
  2020-07-30  9:21 ` Ido Schimmel
@ 2020-07-31  0:39 ` David Miller
  1 sibling, 0 replies; 4+ messages in thread
From: David Miller @ 2020-07-31  0:39 UTC (permalink / raw)
  To: gustavoars; +Cc: jiri, idosch, kuba, netdev, linux-kernel

From: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Date: Wed, 29 Jul 2020 17:58:03 -0500

> 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 <gustavoars@kernel.org>

Applied.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-07-31  0:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-29 22:58 [PATCH][next] mlxsw: spectrum_cnt: Use flex_array_size() helper in memcpy() Gustavo A. R. Silva
2020-07-30  9:21 ` Ido Schimmel
2020-07-30 13:30   ` Gustavo A. R. Silva
2020-07-31  0:39 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).