All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.