lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201204132102.14873.arnd@arndb.de>
Date:	Fri, 13 Apr 2012 21:02:14 +0000
From:	Arnd Bergmann <arnd@...db.de>
To:	Linus Torvalds <torvalds@...ux-foundation.org>,
	Martin Schwidefsky <schwidefsky@...ibm.com>
Cc:	Lubos Lunak <l.lunak@...e.cz>,
	Andrew Morton <akpm@...ux-foundation.org>,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH][RESEND] do not redefine userspace's NULL #define

On Friday 13 April 2012, Linus Torvalds wrote:
> There's no way user should ever include the linux internal stddef.h.
> 
> And quite frankly, kernel-external definitions of NULL have
> traditionally been pure sh*t (ie plain "0" without the cast to a
> pointer), so I'm not entirely convinced about this patch.
> 
> So what is the actual thing this helps with?

I think it used to get included implictly though other exported
kernel headers, but I found only one instance where this is still
true, in the s390 version of asm/ptrace.h.

Martin, does this work for you?

8<-----
headers: do not export linux/stddef.h

There is no reason to export linux/stddef.h and users should never
include it because the header conflicts with the standard stddef.h.

The only other exported header file that actually includes linux/stddef.h
is the s390 asm/ptrace.h, but there is no reason for it to do so, so
we can remove both the export and the inclusion.
When the file is no longer exported, we can also remove the extra lines
that attempt to make it safe for inclusion

Signed-off-by: Arnd Bergmann <arnd@...db.de>
---
 arch/s390/include/asm/ptrace.h |    1 -
 include/linux/Kbuild           |    1 -
 include/linux/stddef.h         |    8 --------
 3 files changed, 0 insertions(+), 10 deletions(-)

diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h
index aeb77f0..e2acdd5 100644
--- a/arch/s390/include/asm/ptrace.h
+++ b/arch/s390/include/asm/ptrace.h
@@ -183,7 +183,6 @@
 #define PTRACE_OLDSETOPTIONS         21
 
 #ifndef __ASSEMBLY__
-#include <linux/stddef.h>
 #include <linux/types.h>
 
 typedef union
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 3c9b616..96391c7 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -351,7 +351,6 @@ header-y += sonypi.h
 header-y += sound.h
 header-y += soundcard.h
 header-y += stat.h
-header-y += stddef.h
 header-y += string.h
 header-y += suspend_ioctls.h
 header-y += swab.h
diff --git a/include/linux/stddef.h b/include/linux/stddef.h
index 6a40c76..daf42b8 100644
--- a/include/linux/stddef.h
+++ b/include/linux/stddef.h
@@ -3,14 +3,7 @@
 
 #include <linux/compiler.h>
 
-#undef NULL
-#if defined(__cplusplus)
-#define NULL 0
-#else
 #define NULL ((void *)0)
-#endif
-
-#ifdef __KERNEL__
 
 enum {
 	false	= 0,
@@ -23,6 +16,5 @@ enum {
 #else
 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
 #endif
-#endif /* __KERNEL__ */
 
 #endif
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ