On Mon, Jun 1, 2020 at 11:36 AM Paul Moore <p...@paul-moore.com> wrote: > On Sun, May 24, 2020 at 4:47 PM Gustavo A. R. Silva > <gustavo...@kernel.org> 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 audit_chunk { > > ... > > struct node { > > struct list_head list; > > struct audit_tree *owner; > > unsigned index; /* index; upper bit indicates 'will > > prune' */ > > } owners[]; > > }; > > > > 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: > > > > offsetof(struct audit_chunk, owners) + count * sizeof(struct node); > > > > with: > > > > struct_size(chunk, owners, count) > > > > This code was detected with the help of Coccinelle. > > > > Signed-off-by: Gustavo A. R. Silva <gustavo...@kernel.org> > > --- > > kernel/audit_tree.c | 4 +--- > > 1 file changed, 1 insertion(+), 3 deletions(-) > > Thanks, this looks reasonable to me, but it came in too late for the > v5.8 merge window (I dislike taking changes past -rc5/6 unless > critical). Once the merge window closes I'll merge this into > audit/next.
FYI, I just merged this into audit/next. Thanks! -- paul moore www.paul-moore.com