tree e4abde280e962ea1da9bc6f5acf3400ed2d269e5
parent fa5b57175364431245b006c2afcbf94dc2b15400
author Gustavo A. R. Silva <gustavo@embeddedor.com> 1567099756 -0500
committer Mimi Zohar <zohar@linux.ibm.com> 1567103010 -0400

ima: ima_api: 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 ima_template_entry {
	...
        struct ima_field_data template_data[0]; /* template related data */
};

instance = kzalloc(sizeof(struct ima_template_entry) + count * sizeof(struct ima_field_data), GFP_NOFS);

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_NOFS);

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
