uml: don't allow processes to call into stub
authorJeff Dike <jdike@addtoit.com>
Tue, 5 Feb 2008 06:31:12 +0000 (22:31 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 5 Feb 2008 17:44:30 +0000 (09:44 -0800)
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>
arch/um/os-Linux/skas/process.c

index 862fea0290ecbbc0273c6496454aaacd0d3069aa..8ab2f5c577a3de86a1661f1b19e57869fb3ecf50 100644 (file)
@@ -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);