From: Gustavo A. R. Silva Date: Thu, 23 May 2019 22:56:53 +0000 (-0500) Subject: flow_offload: use struct_size() in kzalloc() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=6dca9360a9d7a15cef215cea4a55575dbfd2ebdd;p=linux.git flow_offload: 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 foo { int stuff; struct boo entry[]; }; instance = kzalloc(sizeof(struct foo) + count * sizeof(struct boo), GFP_KERNEL); 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_KERNEL); This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller --- diff --git a/net/core/flow_offload.c b/net/core/flow_offload.c index 5ce7d47a960ea..3d93e51b83e02 100644 --- a/net/core/flow_offload.c +++ b/net/core/flow_offload.c @@ -7,8 +7,7 @@ struct flow_rule *flow_rule_alloc(unsigned int num_actions) { struct flow_rule *rule; - rule = kzalloc(sizeof(struct flow_rule) + - sizeof(struct flow_action_entry) * num_actions, + rule = kzalloc(struct_size(rule, action.entries, num_actions), GFP_KERNEL); if (!rule) return NULL;