* [PATCH] hte: Annotate struct hte_device with __counted_by
@ 2023-09-22 17:53 Kees Cook
2023-09-23 16:37 ` Gustavo A. R. Silva
2023-09-28 4:42 ` Justin Stitt
0 siblings, 2 replies; 4+ messages in thread
From: Kees Cook @ 2023-09-22 17:53 UTC (permalink / raw)
To: Dipen Patel
Cc: Kees Cook, timestamp, Nathan Chancellor, Nick Desaulniers,
Tom Rix, linux-kernel, llvm, linux-hardening
Prepare for the coming implementation by GCC and Clang of the __counted_by
attribute. Flexible array members annotated with __counted_by can have
their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS
(for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family
functions).
As found with Coccinelle[1], add __counted_by for struct hte_device.
[1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci
Cc: Dipen Patel <dipenp@nvidia.com>
Cc: timestamp@lists.linux.dev
Signed-off-by: Kees Cook <keescook@chromium.org>
---
drivers/hte/hte.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/hte/hte.c b/drivers/hte/hte.c
index 598a716b7364..1fd8d2d4528b 100644
--- a/drivers/hte/hte.c
+++ b/drivers/hte/hte.c
@@ -88,7 +88,7 @@ struct hte_device {
struct list_head list;
struct hte_chip *chip;
struct module *owner;
- struct hte_ts_info ei[];
+ struct hte_ts_info ei[] __counted_by(nlines);
};
#ifdef CONFIG_DEBUG_FS
--
2.34.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] hte: Annotate struct hte_device with __counted_by
2023-09-22 17:53 [PATCH] hte: Annotate struct hte_device with __counted_by Kees Cook
@ 2023-09-23 16:37 ` Gustavo A. R. Silva
2023-09-28 3:25 ` Dipen Patel
2023-09-28 4:42 ` Justin Stitt
1 sibling, 1 reply; 4+ messages in thread
From: Gustavo A. R. Silva @ 2023-09-23 16:37 UTC (permalink / raw)
To: Kees Cook, Dipen Patel
Cc: timestamp, Nathan Chancellor, Nick Desaulniers, Tom Rix,
linux-kernel, llvm, linux-hardening
On 9/22/23 11:53, Kees Cook wrote:
> Prepare for the coming implementation by GCC and Clang of the __counted_by
> attribute. Flexible array members annotated with __counted_by can have
> their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS
> (for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family
> functions).
>
> As found with Coccinelle[1], add __counted_by for struct hte_device.
>
> [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci
>
> Cc: Dipen Patel <dipenp@nvidia.com>
> Cc: timestamp@lists.linux.dev
> Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Thanks
--
Gustavo
> ---
> drivers/hte/hte.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/hte/hte.c b/drivers/hte/hte.c
> index 598a716b7364..1fd8d2d4528b 100644
> --- a/drivers/hte/hte.c
> +++ b/drivers/hte/hte.c
> @@ -88,7 +88,7 @@ struct hte_device {
> struct list_head list;
> struct hte_chip *chip;
> struct module *owner;
> - struct hte_ts_info ei[];
> + struct hte_ts_info ei[] __counted_by(nlines);
> };
>
> #ifdef CONFIG_DEBUG_FS
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] hte: Annotate struct hte_device with __counted_by
2023-09-23 16:37 ` Gustavo A. R. Silva
@ 2023-09-28 3:25 ` Dipen Patel
0 siblings, 0 replies; 4+ messages in thread
From: Dipen Patel @ 2023-09-28 3:25 UTC (permalink / raw)
To: Gustavo A. R. Silva, Kees Cook
Cc: timestamp, Nathan Chancellor, Nick Desaulniers, Tom Rix,
linux-kernel, llvm, linux-hardening
On 9/23/23 9:37 AM, Gustavo A. R. Silva wrote:
>
>
> On 9/22/23 11:53, Kees Cook wrote:
>> Prepare for the coming implementation by GCC and Clang of the __counted_by
>> attribute. Flexible array members annotated with __counted_by can have
>> their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS
>> (for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family
>> functions).
>>
>> As found with Coccinelle[1], add __counted_by for struct hte_device.
>>
>> [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci
>>
>> Cc: Dipen Patel <dipenp@nvidia.com>
>> Cc: timestamp@lists.linux.dev
>> Signed-off-by: Kees Cook <keescook@chromium.org>
>
> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
>
> Thanks
Reviewed-by: Dipen Patel <dipenp@nvidia.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] hte: Annotate struct hte_device with __counted_by
2023-09-22 17:53 [PATCH] hte: Annotate struct hte_device with __counted_by Kees Cook
2023-09-23 16:37 ` Gustavo A. R. Silva
@ 2023-09-28 4:42 ` Justin Stitt
1 sibling, 0 replies; 4+ messages in thread
From: Justin Stitt @ 2023-09-28 4:42 UTC (permalink / raw)
To: Kees Cook
Cc: Dipen Patel, timestamp, Nathan Chancellor, Nick Desaulniers,
Tom Rix, linux-kernel, llvm, linux-hardening
On Sat, Sep 23, 2023 at 2:54 AM Kees Cook <keescook@chromium.org> wrote:
>
> Prepare for the coming implementation by GCC and Clang of the __counted_by
> attribute. Flexible array members annotated with __counted_by can have
> their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS
> (for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family
> functions).
>
> As found with Coccinelle[1], add __counted_by for struct hte_device.
>
> [1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci
>
> Cc: Dipen Patel <dipenp@nvidia.com>
> Cc: timestamp@lists.linux.dev
> Signed-off-by: Kees Cook <keescook@chromium.org>
Yep, this flexible array member is counted by @nlines which
is evident throughout hte.c:
gdev = kzalloc(struct_size(gdev, ei, chip->nlines), GFP_KERNEL);
...
gdev->nlines = chip->nlines;
...
for (i = 0; i < chip->nlines; i++) {
gdev->ei[i].gdev = gdev;
...
Reviewed-by: Justin Stitt <justinstitt@google.com>
> ---
> drivers/hte/hte.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/hte/hte.c b/drivers/hte/hte.c
> index 598a716b7364..1fd8d2d4528b 100644
> --- a/drivers/hte/hte.c
> +++ b/drivers/hte/hte.c
> @@ -88,7 +88,7 @@ struct hte_device {
> struct list_head list;
> struct hte_chip *chip;
> struct module *owner;
> - struct hte_ts_info ei[];
> + struct hte_ts_info ei[] __counted_by(nlines);
> };
>
> #ifdef CONFIG_DEBUG_FS
> --
> 2.34.1
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-09-28 4:42 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-22 17:53 [PATCH] hte: Annotate struct hte_device with __counted_by Kees Cook
2023-09-23 16:37 ` Gustavo A. R. Silva
2023-09-28 3:25 ` Dipen Patel
2023-09-28 4:42 ` Justin Stitt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).