Skip to content

Commit

Permalink
rpmsg: glink: Use struct_size() helper
Browse files Browse the repository at this point in the history
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 {
	...
	struct intent_pair intents[];
} __packed * msg;

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(*msg) + sizeof(struct intent_pair) * count

with:

struct_size(msg, intents, count)

This code was detected with the help of Coccinelle.

Signed-off-by: Gustavo A. R. Silva <[email protected]>
Signed-off-by: Bjorn Andersson <[email protected]>
  • Loading branch information
GustavoARSilva authored and andersson committed Aug 29, 2019
1 parent de4064a commit 61c65f4
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/rpmsg/qcom_glink_native.c
Original file line number Diff line number Diff line change
Expand Up @@ -892,7 +892,7 @@ static void qcom_glink_handle_intent(struct qcom_glink *glink,
struct intent_pair intents[];
} __packed * msg;

const size_t msglen = sizeof(*msg) + sizeof(struct intent_pair) * count;
const size_t msglen = struct_size(msg, intents, count);
int ret;
int i;
unsigned long flags;
Expand Down

0 comments on commit 61c65f4

Please sign in to comment.