* [PATCH] rpmsg: glink: Use struct_size() helper
@ 2019-08-29 18:17 Gustavo A. R. Silva
2019-08-29 19:09 ` Bjorn Andersson
0 siblings, 1 reply; 4+ messages in thread
From: Gustavo A. R. Silva @ 2019-08-29 18:17 UTC (permalink / raw)
To: Andy Gross, Ohad Ben-Cohen, Bjorn Andersson
Cc: linux-arm-msm, linux-remoteproc, linux-kernel,
Gustavo A. R. Silva
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 <gustavo@embeddedor.com>
---
drivers/rpmsg/qcom_glink_native.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
index f46c787733e8..621f1afd4d6b 100644
--- a/drivers/rpmsg/qcom_glink_native.c
+++ b/drivers/rpmsg/qcom_glink_native.c
@@ -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;
--
2.23.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] rpmsg: glink: Use struct_size() helper
2019-08-29 18:17 [PATCH] rpmsg: glink: Use struct_size() helper Gustavo A. R. Silva
@ 2019-08-29 19:09 ` Bjorn Andersson
0 siblings, 0 replies; 4+ messages in thread
From: Bjorn Andersson @ 2019-08-29 19:09 UTC (permalink / raw)
To: Gustavo A. R. Silva
Cc: Andy Gross, Ohad Ben-Cohen, linux-arm-msm, linux-remoteproc,
linux-kernel
On Thu 29 Aug 11:17 PDT 2019, Gustavo A. R. Silva 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 {
> ...
> 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 <gustavo@embeddedor.com>
Applied, thanks!
> ---
> drivers/rpmsg/qcom_glink_native.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
> index f46c787733e8..621f1afd4d6b 100644
> --- a/drivers/rpmsg/qcom_glink_native.c
> +++ b/drivers/rpmsg/qcom_glink_native.c
> @@ -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;
> --
> 2.23.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] rpmsg: glink: Use struct_size() helper
@ 2019-08-29 19:09 ` Bjorn Andersson
0 siblings, 0 replies; 4+ messages in thread
From: Bjorn Andersson @ 2019-08-29 19:09 UTC (permalink / raw)
To: Gustavo A. R. Silva
Cc: Andy Gross, Ohad Ben-Cohen, linux-arm-msm, linux-remoteproc,
linux-kernel
On Thu 29 Aug 11:17 PDT 2019, Gustavo A. R. Silva 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 {
> ...
> 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 <gustavo@embeddedor.com>
Applied, thanks!
> ---
> drivers/rpmsg/qcom_glink_native.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c
> index f46c787733e8..621f1afd4d6b 100644
> --- a/drivers/rpmsg/qcom_glink_native.c
> +++ b/drivers/rpmsg/qcom_glink_native.c
> @@ -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;
> --
> 2.23.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] rpmsg: glink: Use struct_size() helper
2019-08-29 19:09 ` Bjorn Andersson
(?)
@ 2019-08-29 19:15 ` Gustavo A. R. Silva
-1 siblings, 0 replies; 4+ messages in thread
From: Gustavo A. R. Silva @ 2019-08-29 19:15 UTC (permalink / raw)
To: Bjorn Andersson
Cc: Andy Gross, Ohad Ben-Cohen, linux-arm-msm, linux-remoteproc,
linux-kernel
On 8/29/19 2:09 PM, Bjorn Andersson wrote:
> On Thu 29 Aug 11:17 PDT 2019, Gustavo A. R. Silva 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 {
>> ...
>> 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 <gustavo@embeddedor.com>
>
> Applied, thanks!
>
Awesome. :)
Thanks!
--
Gustavo
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-08-29 19:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-29 18:17 [PATCH] rpmsg: glink: Use struct_size() helper Gustavo A. R. Silva
2019-08-29 19:09 ` Bjorn Andersson
2019-08-29 19:09 ` Bjorn Andersson
2019-08-29 19:15 ` Gustavo A. R. Silva
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.