Re: [PATCH v2] kernel: module: Use struct_size() helper

From: Jessica Yu
Date: Fri Jun 07 2019 - 05:02:03 EST


+++ Gustavo A. R. Silva [06/06/19 13:18 -0500]:
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 module_sect_attrs {
...
struct module_sect_attr attrs[0];
};

Make use of the struct_size() helper instead of an open-coded version
in order to avoid any potential type mistakes.

So, replace the following form:

sizeof(*sect_attrs) + nloaded * sizeof(sect_attrs->attrs[0]

with:

struct_size(sect_attrs, attrs, nloaded)

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
---
Changes in v2:
- Update changelog text by adding a better description for
the motivation and usage of the struct_size() helper.

Applied. Thanks a lot!

Jessica