* [PATCH] drivers: qcom: rpmh: use struct_size() in kzalloc()
@ 2018-08-24 1:17 Gustavo A. R. Silva
2018-08-24 3:05 ` Kees Cook
2018-09-03 19:07 ` Bjorn Andersson
0 siblings, 2 replies; 8+ messages in thread
From: Gustavo A. R. Silva @ 2018-08-24 1:17 UTC (permalink / raw)
To: Andy Gross, David Brown
Cc: linux-arm-msm, linux-soc, linux-kernel, Kees Cook, 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 foo {
int stuff;
void *entry[];
};
instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_ATOMIC);
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_ATOMIC);
This issue was detected with the help of Coccinelle.
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
drivers/soc/qcom/rpmh.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
index c7beb68..12c057a 100644
--- a/drivers/soc/qcom/rpmh.c
+++ b/drivers/soc/qcom/rpmh.c
@@ -362,8 +362,7 @@ int rpmh_write_batch(const struct device *dev, enum rpmh_state state,
if (!count)
return -EINVAL;
- req = kzalloc(sizeof(*req) + count * sizeof(req->rpm_msgs[0]),
- GFP_ATOMIC);
+ req = kzalloc(struct_size(req, rpm_msgs, count), GFP_ATOMIC);
if (!req)
return -ENOMEM;
req->count = count;
--
2.7.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] drivers: qcom: rpmh: use struct_size() in kzalloc()
2018-08-24 1:17 [PATCH] drivers: qcom: rpmh: use struct_size() in kzalloc() Gustavo A. R. Silva
@ 2018-08-24 3:05 ` Kees Cook
2018-09-03 19:07 ` Bjorn Andersson
1 sibling, 0 replies; 8+ messages in thread
From: Kees Cook @ 2018-08-24 3:05 UTC (permalink / raw)
To: Gustavo A. R. Silva
Cc: Andy Gross, David Brown, linux-arm-msm, linux-soc, LKML
On Thu, Aug 23, 2018 at 6:17 PM, Gustavo A. R. Silva
<gustavo@embeddedor.com> 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 foo {
> int stuff;
> void *entry[];
> };
>
> instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_ATOMIC);
>
> 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_ATOMIC);
>
> This issue was detected with the help of Coccinelle.
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
-Kees
> ---
> drivers/soc/qcom/rpmh.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
> index c7beb68..12c057a 100644
> --- a/drivers/soc/qcom/rpmh.c
> +++ b/drivers/soc/qcom/rpmh.c
> @@ -362,8 +362,7 @@ int rpmh_write_batch(const struct device *dev, enum rpmh_state state,
> if (!count)
> return -EINVAL;
>
> - req = kzalloc(sizeof(*req) + count * sizeof(req->rpm_msgs[0]),
> - GFP_ATOMIC);
> + req = kzalloc(struct_size(req, rpm_msgs, count), GFP_ATOMIC);
> if (!req)
> return -ENOMEM;
> req->count = count;
> --
> 2.7.4
>
--
Kees Cook
Pixel Security
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drivers: qcom: rpmh: use struct_size() in kzalloc()
2018-08-24 1:17 [PATCH] drivers: qcom: rpmh: use struct_size() in kzalloc() Gustavo A. R. Silva
2018-08-24 3:05 ` Kees Cook
@ 2018-09-03 19:07 ` Bjorn Andersson
1 sibling, 0 replies; 8+ messages in thread
From: Bjorn Andersson @ 2018-09-03 19:07 UTC (permalink / raw)
To: Gustavo A. R. Silva
Cc: Andy Gross, David Brown, linux-arm-msm, linux-soc, linux-kernel,
Kees Cook
On Thu 23 Aug 18:17 PDT 2018, 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 foo {
> int stuff;
> void *entry[];
> };
>
> instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_ATOMIC);
>
> 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_ATOMIC);
>
> This issue was detected with the help of Coccinelle.
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
> ---
> drivers/soc/qcom/rpmh.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
> index c7beb68..12c057a 100644
> --- a/drivers/soc/qcom/rpmh.c
> +++ b/drivers/soc/qcom/rpmh.c
> @@ -362,8 +362,7 @@ int rpmh_write_batch(const struct device *dev, enum rpmh_state state,
> if (!count)
> return -EINVAL;
>
> - req = kzalloc(sizeof(*req) + count * sizeof(req->rpm_msgs[0]),
> - GFP_ATOMIC);
> + req = kzalloc(struct_size(req, rpm_msgs, count), GFP_ATOMIC);
> if (!req)
> return -ENOMEM;
> req->count = count;
> --
> 2.7.4
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] drivers: qcom: rpmh: use struct_size() in kzalloc()
@ 2018-12-24 6:22 Gustavo A. R. Silva
2019-01-09 17:38 ` Gustavo A. R. Silva
2019-01-29 5:26 ` Amit Kucheria
0 siblings, 2 replies; 8+ messages in thread
From: Gustavo A. R. Silva @ 2018-12-24 6:22 UTC (permalink / raw)
To: Andy Gross, David Brown; +Cc: linux-arm-msm, 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 foo {
int stuff;
void *entry[];
};
instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, 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 issue was detected with the help of Coccinelle.
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
drivers/soc/qcom/rpmh.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
index c7beb6841289..12c057a0b325 100644
--- a/drivers/soc/qcom/rpmh.c
+++ b/drivers/soc/qcom/rpmh.c
@@ -362,8 +362,7 @@ int rpmh_write_batch(const struct device *dev, enum rpmh_state state,
if (!count)
return -EINVAL;
- req = kzalloc(sizeof(*req) + count * sizeof(req->rpm_msgs[0]),
- GFP_ATOMIC);
+ req = kzalloc(struct_size(req, rpm_msgs, count), GFP_ATOMIC);
if (!req)
return -ENOMEM;
req->count = count;
--
2.17.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] drivers: qcom: rpmh: use struct_size() in kzalloc()
2018-12-24 6:22 Gustavo A. R. Silva
@ 2019-01-09 17:38 ` Gustavo A. R. Silva
2019-01-29 5:12 ` Gustavo A. R. Silva
2019-01-29 5:26 ` Amit Kucheria
1 sibling, 1 reply; 8+ messages in thread
From: Gustavo A. R. Silva @ 2019-01-09 17:38 UTC (permalink / raw)
To: Andy Gross, David Brown; +Cc: linux-arm-msm, linux-kernel
Hi,
Friendly ping:
Who can ack or review this patch, please?
Thanks
--
Gustavo
On 12/24/18 12:22 AM, 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 foo {
> int stuff;
> void *entry[];
> };
>
> instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, 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 issue was detected with the help of Coccinelle.
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
> ---
> drivers/soc/qcom/rpmh.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
> index c7beb6841289..12c057a0b325 100644
> --- a/drivers/soc/qcom/rpmh.c
> +++ b/drivers/soc/qcom/rpmh.c
> @@ -362,8 +362,7 @@ int rpmh_write_batch(const struct device *dev, enum rpmh_state state,
> if (!count)
> return -EINVAL;
>
> - req = kzalloc(sizeof(*req) + count * sizeof(req->rpm_msgs[0]),
> - GFP_ATOMIC);
> + req = kzalloc(struct_size(req, rpm_msgs, count), GFP_ATOMIC);
> if (!req)
> return -ENOMEM;
> req->count = count;
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drivers: qcom: rpmh: use struct_size() in kzalloc()
2019-01-09 17:38 ` Gustavo A. R. Silva
@ 2019-01-29 5:12 ` Gustavo A. R. Silva
0 siblings, 0 replies; 8+ messages in thread
From: Gustavo A. R. Silva @ 2019-01-29 5:12 UTC (permalink / raw)
To: Andy Gross, David Brown; +Cc: linux-arm-msm, linux-kernel
Hi all,
Friendly ping:
Who can take this?
Thanks
--
Gustavo
On 1/9/19 11:38 AM, Gustavo A. R. Silva wrote:
> Hi,
>
> Friendly ping:
>
> Who can ack or review this patch, please?
>
> Thanks
> --
> Gustavo
>
>
> On 12/24/18 12:22 AM, 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 foo {
>> int stuff;
>> void *entry[];
>> };
>>
>> instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, 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 issue was detected with the help of Coccinelle.
>>
>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>> ---
>> drivers/soc/qcom/rpmh.c | 3 +--
>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
>> index c7beb6841289..12c057a0b325 100644
>> --- a/drivers/soc/qcom/rpmh.c
>> +++ b/drivers/soc/qcom/rpmh.c
>> @@ -362,8 +362,7 @@ int rpmh_write_batch(const struct device *dev, enum rpmh_state state,
>> if (!count)
>> return -EINVAL;
>> - req = kzalloc(sizeof(*req) + count * sizeof(req->rpm_msgs[0]),
>> - GFP_ATOMIC);
>> + req = kzalloc(struct_size(req, rpm_msgs, count), GFP_ATOMIC);
>> if (!req)
>> return -ENOMEM;
>> req->count = count;
>>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drivers: qcom: rpmh: use struct_size() in kzalloc()
2018-12-24 6:22 Gustavo A. R. Silva
2019-01-09 17:38 ` Gustavo A. R. Silva
@ 2019-01-29 5:26 ` Amit Kucheria
2019-01-29 6:57 ` Gustavo A. R. Silva
1 sibling, 1 reply; 8+ messages in thread
From: Amit Kucheria @ 2019-01-29 5:26 UTC (permalink / raw)
To: Gustavo A. R. Silva; +Cc: Andy Gross, David Brown, linux-arm-msm, LKML
On Mon, Dec 24, 2018 at 11:52 AM Gustavo A. R. Silva
<gustavo@embeddedor.com> 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 foo {
> int stuff;
> void *entry[];
> };
>
> instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, 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 issue was detected with the help of Coccinelle.
>
> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org>
> ---
> drivers/soc/qcom/rpmh.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
> index c7beb6841289..12c057a0b325 100644
> --- a/drivers/soc/qcom/rpmh.c
> +++ b/drivers/soc/qcom/rpmh.c
> @@ -362,8 +362,7 @@ int rpmh_write_batch(const struct device *dev, enum rpmh_state state,
> if (!count)
> return -EINVAL;
>
> - req = kzalloc(sizeof(*req) + count * sizeof(req->rpm_msgs[0]),
> - GFP_ATOMIC);
> + req = kzalloc(struct_size(req, rpm_msgs, count), GFP_ATOMIC);
> if (!req)
> return -ENOMEM;
> req->count = count;
> --
> 2.17.0
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drivers: qcom: rpmh: use struct_size() in kzalloc()
2019-01-29 5:26 ` Amit Kucheria
@ 2019-01-29 6:57 ` Gustavo A. R. Silva
0 siblings, 0 replies; 8+ messages in thread
From: Gustavo A. R. Silva @ 2019-01-29 6:57 UTC (permalink / raw)
To: Amit Kucheria; +Cc: Andy Gross, David Brown, linux-arm-msm, LKML
On 1/28/19 11:26 PM, Amit Kucheria wrote:
> On Mon, Dec 24, 2018 at 11:52 AM Gustavo A. R. Silva
> <gustavo@embeddedor.com> 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 foo {
>> int stuff;
>> void *entry[];
>> };
>>
>> instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, 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 issue was detected with the help of Coccinelle.
>>
>> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
>
> Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org>
>
Thanks, Amit.
--
Gustavo
>> ---
>> drivers/soc/qcom/rpmh.c | 3 +--
>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c
>> index c7beb6841289..12c057a0b325 100644
>> --- a/drivers/soc/qcom/rpmh.c
>> +++ b/drivers/soc/qcom/rpmh.c
>> @@ -362,8 +362,7 @@ int rpmh_write_batch(const struct device *dev, enum rpmh_state state,
>> if (!count)
>> return -EINVAL;
>>
>> - req = kzalloc(sizeof(*req) + count * sizeof(req->rpm_msgs[0]),
>> - GFP_ATOMIC);
>> + req = kzalloc(struct_size(req, rpm_msgs, count), GFP_ATOMIC);
>> if (!req)
>> return -ENOMEM;
>> req->count = count;
>> --
>> 2.17.0
>>
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-01-29 6:57 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-24 1:17 [PATCH] drivers: qcom: rpmh: use struct_size() in kzalloc() Gustavo A. R. Silva
2018-08-24 3:05 ` Kees Cook
2018-09-03 19:07 ` Bjorn Andersson
2018-12-24 6:22 Gustavo A. R. Silva
2019-01-09 17:38 ` Gustavo A. R. Silva
2019-01-29 5:12 ` Gustavo A. R. Silva
2019-01-29 5:26 ` Amit Kucheria
2019-01-29 6:57 ` 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.