2024-05-07 17:33:54

by Erick Archer

[permalink] [raw]
Subject: [PATCH v2] uapi: stddef.h: Provide UAPI macros for __counted_by_{le, be}

This commit can be considered an addition to commit ca7e324e8ad3
("compiler_types: add Endianness-dependent __counted_by_{le,be}") [1].

In the commit referenced above the __counted_by_{le,be}() attributes
were defined based on platform's endianness with the goal to that the
structures contain flexible arrays at the end, and the counter for,
can be annotated with these attributes.

So, this commit only provide UAPI macros for UAPI structs that will
gain annotations for __counted_by_{le, be} attributes. And it is the
previous step to be able to use these attributes in UAPI.

Link: https://lore.kernel.org/r/[email protected]
Suggested-by: Sven Eckelmann <[email protected]>
Signed-off-by: Erick Archer <[email protected]>
---
Changes in v2:
- Add the "Suggested_by:" tag.
- Update the commit message to better explain the goal (Miguel Ojeda).

Previous versions:
v1 -> https://lore.kernel.org/linux-hardening/AS8PR02MB7237CD9ECBF7907AD8B1CC938B1C2@AS8PR02MB7237.eurprd02.prod.outlook.com/

Hi everyone,

The goal of this commit is to be able to accept this another one [1].
And as Kees suggested in this mail [2] we need to land this patch before
the other because we will need __counted_by_be() in UAPI.

[1] https://lore.kernel.org/linux-hardening/AS8PR02MB72371F89D188B047410B755E8B192@AS8PR02MB7237.eurprd02.prod.outlook.com/
[2] https://lore.kernel.org/linux-hardening/202405060924.4001F77D@keescook/
---
include/uapi/linux/stddef.h | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/include/uapi/linux/stddef.h b/include/uapi/linux/stddef.h
index 2ec6f35cda32..58154117d9b0 100644
--- a/include/uapi/linux/stddef.h
+++ b/include/uapi/linux/stddef.h
@@ -55,4 +55,12 @@
#define __counted_by(m)
#endif

+#ifndef __counted_by_le
+#define __counted_by_le(m)
+#endif
+
+#ifndef __counted_by_be
+#define __counted_by_be(m)
+#endif
+
#endif /* _UAPI_LINUX_STDDEF_H */
--
2.25.1



2024-05-08 07:46:14

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH v2] uapi: stddef.h: Provide UAPI macros for __counted_by_{le, be}

On Tue, 07 May 2024 19:33:18 +0200, Erick Archer wrote:
> This commit can be considered an addition to commit ca7e324e8ad3
> ("compiler_types: add Endianness-dependent __counted_by_{le,be}") [1].
>
> In the commit referenced above the __counted_by_{le,be}() attributes
> were defined based on platform's endianness with the goal to that the
> structures contain flexible arrays at the end, and the counter for,
> can be annotated with these attributes.
>
> [...]

Applied to for-next/hardening, thanks!

[1/1] uapi: stddef.h: Provide UAPI macros for __counted_by_{le, be}
https://git.kernel.org/kees/c/6d305cbef1aa

Take care,

--
Kees Cook