mwifiex: use struct_size() in kzalloc()
Subsystems (3)
PATCH 1/1 mwifiex: use struct_size() in kzalloc()
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo {
int stuff;
struct boo entry[];
};size = sizeof(struct foo) + count * sizeof(struct boo); instance = kzalloc(size, GFP_KERNEL)
Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper:
instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL)
Notice that, in this case, variable regd_size is not necessary, hence it is removed.
This code was detected with the help of Coccinelle.
--- drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c +2 -5
@@ -1025,17 +1025,14 @@ mwifiex_create_custom_regdomain(struct mwifiex_private *priv,struct ieee80211_regdomain *regd;struct ieee80211_reg_rule *rule;bool new_rule; -int regd_size, idx, freq, prev_freq =0 ; +int idx, freq, prev_freq =0 ;u32 bw, prev_bw =0 ;u8 chflags, prev_chflags =0 , valid_rules =0 ;if (WARN_ON_ONCE (num_chan >NL80211_MAX_SUPP_REG_RULES ))return ERR_PTR (-EINVAL ); - regd_size =sizeof (struct ieee80211_regdomain ) + - num_chan *sizeof (struct ieee80211_reg_rule ); - - regd =kzalloc (regd_size,GFP_KERNEL ); + regd =kzalloc (struct_size (regd, reg_rules, num_chan),GFP_KERNEL );if (!regd)return ERR_PTR (-ENOMEM );
Signature · 1 line
2.21.0
Quoted 15 lines · Gustavo A. R. Silva
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo { int stuff; struct boo entry[]; };size = sizeof(struct foo) + count * sizeof(struct boo); instance =
kzalloc(size, GFP_KERNEL)Instead of leaving these open-coded and prone to type mistakes, we can now use the new
struct_size()helper:
Quoted 8 lines
instance =
kzalloc(struct_size(instance, entry, count), GFP_KERNEL)Notice that, in this case, variable
regd_sizeis not necessary, hence it is removed.This code was detected with the help of Coccinelle.
Signed-off-by Gustavo A. R. Silva <[email protected]>
Patch applied to wireless-drivers-next.git, thanks.
ae187ba91541 mwifiex: use struct_size() in kzalloc()
Signature · 3 lines
https://patchwork.kernel.org/patch/10884249/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches