From: Cyrill Gorcunov <gorcunov@gmail.com>
To: Ingo Molnar <mingo@elte.hu>, "H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Sam Ravnborg <sam@ravnborg.org>
Cc: Harvey Harrison <harvey.harrison@gmail.com>,
LKML <linux-kernel@vger.kernel.org>,
Jaswinder Singh Rajput <jaswinderlinux@gmail.com>
Subject: [PATCH -tip] x86: headers - fix export private data to userspace
Date: Tue, 13 Jan 2009 21:34:56 +0300 [thread overview]
Message-ID: <20090113183456.GA14470@localhost> (raw)
Impact: cleanup
'make headers_check' warn us about leaking of kernel private
(mostly compile time vars) data to userspace in headers. Fix it.
More detailed report for easier reviewing:
1) boot.h - neither BOOT_HEAP_SIZE, BOOT_STACK_SIZE refs
was found by searching thru net (ie in user-space area).
2) prctl.h - sys_arch_prctl is completely removed from
header since frankly I don't even understand why we
describe it here. It is described like
__SYSCALL(__NR_arch_prctl, sys_arch_prctl) in unistd_64.h
and implemented in process_64.c. User-mode linux involved?
So this one in fact is suspicious.
3) ptrace-abi.h - ptrace_bts_config struct is wrapped
by __KERNEL__ -- not sure if it was ever proposed for
userland.
4) setup.h - COMMAND_LINE_SIZE saved for userspace, bootloaders
could use it.
5) sigcontext32.h - we really need linux/types.h here
since we use __u... types.
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
---
I should probably write "Impact: break the kernel" :)
It requires _STRONG_ review, randconfig and so on. It's
really fragile -- having NAK on response will be fine.
arch/x86/include/asm/boot.h | 10 +++++++---
arch/x86/include/asm/prctl.h | 4 ----
arch/x86/include/asm/ptrace-abi.h | 4 +++-
arch/x86/include/asm/setup.h | 4 ++--
arch/x86/include/asm/sigcontext32.h | 2 ++
5 files changed, 14 insertions(+), 10 deletions(-)
Index: linux-2.6.git/arch/x86/include/asm/boot.h
===================================================================
--- linux-2.6.git.orig/arch/x86/include/asm/boot.h
+++ linux-2.6.git/arch/x86/include/asm/boot.h
@@ -10,14 +10,16 @@
#define EXTENDED_VGA 0xfffe /* 80x50 mode */
#define ASK_VGA 0xfffd /* ask for it at bootup */
+#ifdef __KERNEL__
+
/* Physical address where kernel should be loaded. */
#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
+ (CONFIG_PHYSICAL_ALIGN - 1)) \
& ~(CONFIG_PHYSICAL_ALIGN - 1))
-#if (defined CONFIG_KERNEL_BZIP2)
+#ifdef CONFIG_KERNEL_BZIP2
#define BOOT_HEAP_SIZE 0x400000
-#else
+#else /* !CONFIG_KERNEL_BZIP2 */
#ifdef CONFIG_X86_64
#define BOOT_HEAP_SIZE 0x7000
@@ -25,7 +27,7 @@
#define BOOT_HEAP_SIZE 0x4000
#endif
-#endif
+#endif /* !CONFIG_KERNEL_BZIP2 */
#ifdef CONFIG_X86_64
#define BOOT_STACK_SIZE 0x4000
@@ -33,4 +35,6 @@
#define BOOT_STACK_SIZE 0x1000
#endif
+#endif /* __KERNEL__ */
+
#endif /* _ASM_X86_BOOT_H */
Index: linux-2.6.git/arch/x86/include/asm/prctl.h
===================================================================
--- linux-2.6.git.orig/arch/x86/include/asm/prctl.h
+++ linux-2.6.git/arch/x86/include/asm/prctl.h
@@ -6,8 +6,4 @@
#define ARCH_GET_FS 0x1003
#define ARCH_GET_GS 0x1004
-#ifdef CONFIG_X86_64
-extern long sys_arch_prctl(int, unsigned long);
-#endif /* CONFIG_X86_64 */
-
#endif /* _ASM_X86_PRCTL_H */
Index: linux-2.6.git/arch/x86/include/asm/ptrace-abi.h
===================================================================
--- linux-2.6.git.orig/arch/x86/include/asm/ptrace-abi.h
+++ linux-2.6.git/arch/x86/include/asm/ptrace-abi.h
@@ -50,7 +50,7 @@
#define RSP 152
#define SS 160
#define ARGOFFSET R11
-#endif /* __ASSEMBLY__ */
+#endif /* __ASSEMBLY__ || __FRAME_OFFSETS */
/* top of stack page */
#define FRAME_SIZE 168
@@ -80,6 +80,7 @@
#define PTRACE_SINGLEBLOCK 33 /* resume execution until next branch */
+#ifdef __KERNEL__
#ifdef CONFIG_X86_PTRACE_BTS
#ifndef __ASSEMBLY__
@@ -141,5 +142,6 @@ struct ptrace_bts_config {
Returns number of BTS records drained.
*/
#endif /* CONFIG_X86_PTRACE_BTS */
+#endif /* __KERNEL__ */
#endif /* _ASM_X86_PTRACE_ABI_H */
Index: linux-2.6.git/arch/x86/include/asm/setup.h
===================================================================
--- linux-2.6.git.orig/arch/x86/include/asm/setup.h
+++ linux-2.6.git/arch/x86/include/asm/setup.h
@@ -3,6 +3,8 @@
#define COMMAND_LINE_SIZE 2048
+#ifdef __KERNEL__
+
#ifndef __ASSEMBLY__
/* Interrupt control for vSMPowered x86_64 systems */
@@ -56,8 +58,6 @@ extern unsigned long saved_video_mode;
#endif
#endif /* __ASSEMBLY__ */
-#ifdef __KERNEL__
-
#ifdef __i386__
#include <linux/pfn.h>
Index: linux-2.6.git/arch/x86/include/asm/sigcontext32.h
===================================================================
--- linux-2.6.git.orig/arch/x86/include/asm/sigcontext32.h
+++ linux-2.6.git/arch/x86/include/asm/sigcontext32.h
@@ -1,6 +1,8 @@
#ifndef _ASM_X86_SIGCONTEXT32_H
#define _ASM_X86_SIGCONTEXT32_H
+#include <linux/types.h>
+
/* signal context for 32bit programs. */
#define X86_FXSR_MAGIC 0x0000
next reply other threads:[~2009-01-13 18:35 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-13 18:34 Cyrill Gorcunov [this message]
2009-01-13 18:37 ` [PATCH -tip] x86: headers - fix export private data to userspace Harvey Harrison
2009-01-13 18:49 ` H. Peter Anvin
2009-01-13 18:52 ` Cyrill Gorcunov
2009-01-13 18:55 ` H. Peter Anvin
2009-01-13 19:00 ` Cyrill Gorcunov
2009-01-13 19:03 ` H. Peter Anvin
2009-01-13 19:12 ` Cyrill Gorcunov
2009-01-13 19:05 ` Harvey Harrison
2009-01-13 18:50 ` Cyrill Gorcunov
2009-01-13 18:54 ` H. Peter Anvin
2009-01-13 18:56 ` Cyrill Gorcunov
2009-01-14 19:42 ` H. Peter Anvin
2009-01-14 19:49 ` Cyrill Gorcunov
2009-01-14 20:05 ` Cyrill Gorcunov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090113183456.GA14470@localhost \
--to=gorcunov@gmail.com \
--cc=harvey.harrison@gmail.com \
--cc=hpa@zytor.com \
--cc=jaswinderlinux@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=sam@ravnborg.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.