wifi: mac80211: use kmemdup_array instead of kmemdup for multiple allocation

Let the kmemdup_array() take care about multiplication
and possible overflows.

Using kmemdup_array() is more appropriate and makes the code
easier to audit.

Signed-off-by: Shen Lichuan <shenlichuan@vivo.com>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Link: https://patch.msgid.link/20240827072115.42680-1-shenlichuan@vivo.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Shen Lichuan 2024-08-27 15:21:15 +08:00 committed by Johannes Berg
parent 32bf7729d2
commit d07e1f5c74

View file

@ -1051,9 +1051,9 @@ static int ieee80211_init_cipher_suites(struct ieee80211_local *local)
return 0;
/* Driver provides cipher suites, but we need to exclude WEP */
suites = kmemdup(local->hw.wiphy->cipher_suites,
sizeof(u32) * local->hw.wiphy->n_cipher_suites,
GFP_KERNEL);
suites = kmemdup_array(local->hw.wiphy->cipher_suites,
local->hw.wiphy->n_cipher_suites,
sizeof(u32), GFP_KERNEL);
if (!suites)
return -ENOMEM;