]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
UAPI: elf_read_implies_exec() is a kernel-only feature - so hide from userspace
authorDavid Howells <dhowells@redhat.com>
Mon, 12 Dec 2011 13:54:36 +0000 (13:54 +0000)
committerDavid Howells <dhowells@redhat.com>
Mon, 12 Dec 2011 13:54:36 +0000 (13:54 +0000)
elf_read_implies_exec() is a kernel-only feature as the second parameter is a
constant that isn't exported to userspace.  Not only that, but the
arch-specific overrides are not exported either.

So hide the macro from userspace.

Similarly, struct file should not be predeclared in userspace.

Signed-off-by: David Howells <dhowells@redhat.com>
include/linux/elf.h

index 31f0508d7da7a3274e207cc3389edb824ed77fd3..999b4f52e8e5c88b84fafb9e439bb5a931ef118c 100644 (file)
@@ -7,15 +7,6 @@
 #include <asm/elf.h>
 #endif
 
-struct file;
-
-#ifndef elf_read_implies_exec
-  /* Executables for which elf_read_implies_exec() returns TRUE will
-     have the READ_IMPLIES_EXEC personality flag set automatically.
-     Override in asm/elf.h as needed.  */
-# define elf_read_implies_exec(ex, have_pt_gnu_stack)  0
-#endif
-
 /* 32-bit ELF base types. */
 typedef __u32  Elf32_Addr;
 typedef __u16  Elf32_Half;
@@ -414,6 +405,13 @@ typedef struct elf64_note {
 } Elf64_Nhdr;
 
 #ifdef __KERNEL__
+#ifndef elf_read_implies_exec
+  /* Executables for which elf_read_implies_exec() returns TRUE will
+     have the READ_IMPLIES_EXEC personality flag set automatically.
+     Override in asm/elf.h as needed.  */
+# define elf_read_implies_exec(ex, have_pt_gnu_stack)  0
+#endif
+
 #if ELF_CLASS == ELFCLASS32
 
 extern Elf32_Dyn _DYNAMIC [];
@@ -437,6 +435,8 @@ extern Elf64_Dyn _DYNAMIC [];
 #endif
 
 /* Optional callbacks to write extra ELF notes. */
+struct file;
+
 #ifndef ARCH_HAVE_EXTRA_ELF_NOTES
 static inline int elf_coredump_extra_notes_size(void) { return 0; }
 static inline int elf_coredump_extra_notes_write(struct file *file,