Re: [PATCH][next] qtnfmac: replace qtnf_cmd_acl_data_size() with struct_size()

From: Gustavo A. R. Silva
Date: Thu Apr 04 2019 - 12:36:48 EST




On 4/4/19 11:01 AM, Gustavo A. R. Silva wrote:
>
>
> On 4/4/19 8:32 AM, Sergey Matyukevich wrote:
>>> 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:
>>>
>>> size = struct_size(instance, entry, count);
>>>
>>> or
>>>
>>> instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL)
>>>
>>> Based on the above, replace qtnf_cmd_acl_data_size() with the
>>> new struct_size() helper.
>>>
>>> This code was detected with the help of Coccinelle.
>>>
>>> Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
>>> ---
>>> drivers/net/wireless/quantenna/qtnfmac/commands.c | 15 ++++-----------
>>> 1 file changed, 4 insertions(+), 11 deletions(-)
>>
>> Hi Gustavo,
>>
>
> Hey Sergey,
>
>> Thanks for the patch! By the way, it does not apply cleanly, so it needs
>> to be rebased on top of the up-to-date wireless-drivers-next tree. Let
>> me know if you would prefer me to care about rebase. Then I will
>> add this patch to the upcoming series of qtnfmac fixes.
>>
>
> Don't worry. I'll do it and send this again.
>

Hmm... I just applied it cleanly on top of wireless-drivers-next/master:

973a99be7943 (HEAD) qtnfmac: replace qtnf_cmd_acl_data_size() with struct_size()
38bb0baea310 (wireless-drivers-next/master) rtlwifi: move spin_lock_bh to spin_lock in tasklet
60209d482b97 rtlwifi: fix potential NULL pointer dereference
765976285a8c rtlwifi: fix a potential NULL pointer dereference

Do you see any issues with this?

Thanks
--
Gustavo