All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] module: Annotate struct module_notes_attrs with __counted_by
@ 2023-09-22 17:52 Kees Cook
  2023-09-22 21:57 ` Luis Chamberlain
  2023-09-23 17:01 ` Gustavo A. R. Silva
  0 siblings, 2 replies; 3+ messages in thread
From: Kees Cook @ 2023-09-22 17:52 UTC (permalink / raw)
  To: Luis Chamberlain
  Cc: Kees Cook, linux-modules, 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 module_notes_attrs.

[1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci

Cc: Luis Chamberlain <mcgrof@kernel.org>
Cc: linux-modules@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
---
 kernel/module/sysfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/module/sysfs.c b/kernel/module/sysfs.c
index c921bf044050..d964167c6658 100644
--- a/kernel/module/sysfs.c
+++ b/kernel/module/sysfs.c
@@ -143,7 +143,7 @@ static void remove_sect_attrs(struct module *mod)
 struct module_notes_attrs {
 	struct kobject *dir;
 	unsigned int notes;
-	struct bin_attribute attrs[];
+	struct bin_attribute attrs[] __counted_by(notes);
 };
 
 static ssize_t module_notes_read(struct file *filp, struct kobject *kobj,
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-09-23  9:00 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-22 17:52 [PATCH] module: Annotate struct module_notes_attrs with __counted_by Kees Cook
2023-09-22 21:57 ` Luis Chamberlain
2023-09-23 17:01 ` 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.