diff options
author | Jeff Dike <jdike@addtoit.com> | 2008-02-05 07:31:12 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-05 18:44:30 +0100 |
commit | e06173bde0ec9830a296720f8cd7cb2f17b76fa4 (patch) | |
tree | 2921ec692006b07a2ff2fadcf5e392d160b1c766 /arch/um/os-Linux/skas | |
parent | uml: get rid of syscall counters (diff) | |
download | linux-e06173bde0ec9830a296720f8cd7cb2f17b76fa4.tar.xz linux-e06173bde0ec9830a296720f8cd7cb2f17b76fa4.zip |
uml: don't allow processes to call into stub
Kill a process that tries to branch into a stub and execute a system
call. There are no security implications here - a system call in a
stub is treated the same as a system call anywhere else. But if a
process is trying to branch into a stub, either it is trying something
nasty or it has gone haywire, so it's a good idea to get rid of it in
either case.
Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/um/os-Linux/skas')
-rw-r--r-- | arch/um/os-Linux/skas/process.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c index 862fea0290ec..8ab2f5c577a3 100644 --- a/arch/um/os-Linux/skas/process.c +++ b/arch/um/os-Linux/skas/process.c @@ -146,6 +146,9 @@ static void handle_trap(int pid, struct uml_pt_regs *regs, { int err, status; + if ((UPT_IP(regs) >= STUB_START) && (UPT_IP(regs) < STUB_END)) + fatal_sigsegv(); + /* Mark this as a syscall */ UPT_SYSCALL_NR(regs) = PT_SYSCALL_NR(regs->gp); |