summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjdike <jdike>2003-09-08 16:31:16 +0000
committerjdike <jdike>2003-09-08 16:31:16 +0000
commit54acfce76ec0e817dce115b6075bae27202c25f0 (patch)
treeaf2fb57e430d736a6083ffd62d8d7ef1d4fb7ed8
parent28f4faf34e91e42d08e3c8be6e43ef7a082301f0 (diff)
downloaduml-history-54acfce76ec0e817dce115b6075bae27202c25f0.tar.gz
sys_call_table is now checked for NULL entries.
-rw-r--r--arch/um/kernel/skas/syscall_kern.c3
-rw-r--r--arch/um/kernel/tt/syscall_kern.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/arch/um/kernel/skas/syscall_kern.c b/arch/um/kernel/skas/syscall_kern.c
index bc837a7..25c834c 100644
--- a/arch/um/kernel/skas/syscall_kern.c
+++ b/arch/um/kernel/skas/syscall_kern.c
@@ -23,7 +23,8 @@ long execute_syscall_skas(void *r)
nsyscalls++;
syscall = UPT_SYSCALL_NR(&regs->regs);
- if((syscall >= NR_syscalls) || (syscall < 0))
+ if((syscall >= NR_syscalls) || (syscall < 0) ||
+ (sys_call_table[syscall] == NULL))
res = -ENOSYS;
else res = EXECUTE_SYSCALL(syscall, regs);
diff --git a/arch/um/kernel/tt/syscall_kern.c b/arch/um/kernel/tt/syscall_kern.c
index 8c9a2da..8ede9ca 100644
--- a/arch/um/kernel/tt/syscall_kern.c
+++ b/arch/um/kernel/tt/syscall_kern.c
@@ -113,7 +113,8 @@ long execute_syscall_tt(void *r)
nsyscalls++;
syscall = UPT_SYSCALL_NR(&regs->regs);
- if((syscall >= NR_syscalls) || (syscall < 0))
+ if((syscall >= NR_syscalls) || (syscall < 0) ||
+ (sys_call_table[syscall] == NULL))
res = -ENOSYS;
else if(honeypot && check_bogosity(regs))
res = -EFAULT;