2022-03-30 06:48:15

by Tadeusz Struk

[permalink] [raw]
Subject: [PATCH] uapi/linux/stddef.h: add include guards

Add iclude guarde to uapi/linux/stddef.h to prevent
redefining macros.

Signed-off-by: Tadeusz Struk <[email protected]>
---
include/uapi/linux/stddef.h | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/include/uapi/linux/stddef.h b/include/uapi/linux/stddef.h
index 3021ea25a284..7837ba4fe728 100644
--- a/include/uapi/linux/stddef.h
+++ b/include/uapi/linux/stddef.h
@@ -1,4 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _UAPI_LINUX_STDDEF_H
+#define _UAPI_LINUX_STDDEF_H
+
#include <linux/compiler_types.h>

#ifndef __always_inline
@@ -41,3 +44,4 @@
struct { } __empty_ ## NAME; \
TYPE NAME[]; \
}
+#endif
--
2.35.1


2022-03-31 02:32:25

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH] uapi/linux/stddef.h: add include guards

On Tue, Mar 29, 2022 at 10:12:52AM -0700, Tadeusz Struk wrote:
> Add iclude guarde to uapi/linux/stddef.h to prevent
> redefining macros.
>
> Signed-off-by: Tadeusz Struk <[email protected]>

Hi!

What was tripping over this? This isn't a new file, so has something
changed with how it has been included?

-Kees

> ---
> include/uapi/linux/stddef.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/include/uapi/linux/stddef.h b/include/uapi/linux/stddef.h
> index 3021ea25a284..7837ba4fe728 100644
> --- a/include/uapi/linux/stddef.h
> +++ b/include/uapi/linux/stddef.h
> @@ -1,4 +1,7 @@
> /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> +#ifndef _UAPI_LINUX_STDDEF_H
> +#define _UAPI_LINUX_STDDEF_H
> +
> #include <linux/compiler_types.h>
>
> #ifndef __always_inline
> @@ -41,3 +44,4 @@
> struct { } __empty_ ## NAME; \
> TYPE NAME[]; \
> }
> +#endif
> --
> 2.35.1
>

--
Kees Cook

2022-03-31 04:30:36

by Tadeusz Struk

[permalink] [raw]
Subject: Re: [PATCH] uapi/linux/stddef.h: add include guards

On 3/30/22 14:49, Kees Cook wrote:
> On Tue, Mar 29, 2022 at 10:12:52AM -0700, Tadeusz Struk wrote:
>> Add iclude guarde to uapi/linux/stddef.h to prevent
>> redefining macros.
>>
>> Signed-off-by: Tadeusz Struk <[email protected]>
>
> Hi!
>
> What was tripping over this? This isn't a new file, so has something
> changed with how it has been included?

Hi Kees,
Yes, it isn't new, but up until 5.15 it had only three lines:

#ifndef __always_inline
#define __always_inline inline
#endif

https://elixir.bootlin.com/linux/v5.15.32/source/include/uapi/linux/stddef.h

and one could include it as many time as one would liked.
Now that it has more #defines, and since it is an user api that people
can directly include in their projects, wouldn't it need to have
the include guards to avoid warnings about redefined symbols?
All the other headers in include/uapi/linux/ do have that.

--
Thanks,
Tadeusz

2022-04-01 05:57:53

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH] uapi/linux/stddef.h: add include guards

On Tue, 29 Mar 2022 10:12:52 -0700, Tadeusz Struk wrote:
> Add iclude guarde to uapi/linux/stddef.h to prevent
> redefining macros.

I cleaned up the commit log and applied this for-v5.18/hardening, thanks!

[1/1] uapi/linux/stddef.h: add include guards
https://git.kernel.org/kees/c/55037ed7bdc6

--
Kees Cook

2022-04-01 15:14:48

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH] uapi/linux/stddef.h: add include guards

On Tue, Mar 29, 2022 at 10:12:52AM -0700, Tadeusz Struk wrote:
> Add iclude guarde to uapi/linux/stddef.h to prevent
> redefining macros.
>
> Signed-off-by: Tadeusz Struk <[email protected]>

Acked-by: Kees Cook <[email protected]>

--
Kees Cook