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

Tadeusz Struk posted 1 patch 4 years, 2 months ago
include/uapi/linux/stddef.h | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] uapi/linux/stddef.h: add include guards
Posted by Tadeusz Struk 4 years, 2 months ago
Add iclude guarde to uapi/linux/stddef.h to prevent
redefining macros.

Signed-off-by: Tadeusz Struk <tadeusz.struk@linaro.org>
---
 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
Re: [PATCH] uapi/linux/stddef.h: add include guards
Posted by Kees Cook 4 years, 2 months ago
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 <tadeusz.struk@linaro.org>

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
Re: [PATCH] uapi/linux/stddef.h: add include guards
Posted by Tadeusz Struk 4 years, 2 months ago
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 <tadeusz.struk@linaro.org>
> 
> 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
Re: [PATCH] uapi/linux/stddef.h: add include guards
Posted by Kees Cook 4 years, 2 months ago
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
Re: [PATCH] uapi/linux/stddef.h: add include guards
Posted by Kees Cook 4 years, 2 months ago
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 <tadeusz.struk@linaro.org>

Acked-by: Kees Cook <keescook@chromium.org>

-- 
Kees Cook