Re: [PATCH][next] Bluetooth: mgmt: Use struct_size() helper

From: Marcel Holtmann
Date: Wed Sep 04 2019 - 14:20:09 EST


Hi Gustavo,

> 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 mgmt_rp_get_connections {
> ...
> struct mgmt_addr_info addr[0];
> } __packed;
>
> 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(*rp) + (i * sizeof(struct mgmt_addr_info));
>
> with:
>
> struct_size(rp, addr, i)
>
> Also, notice that, in this case, variable rp_len is not necessary,
> hence it is removed.
>
> This code was detected with the help of Coccinelle.
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx>
> ---
> net/bluetooth/mgmt.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)

patch has been applied to bluetooth-next tree.

Regards

Marcel