diff options
author | jdike <jdike> | 2003-09-08 16:31:16 +0000 |
---|---|---|
committer | jdike <jdike> | 2003-09-08 16:31:16 +0000 |
commit | 54acfce76ec0e817dce115b6075bae27202c25f0 (patch) | |
tree | af2fb57e430d736a6083ffd62d8d7ef1d4fb7ed8 | |
parent | 28f4faf34e91e42d08e3c8be6e43ef7a082301f0 (diff) | |
download | uml-history-54acfce76ec0e817dce115b6075bae27202c25f0.tar.gz |
sys_call_table is now checked for NULL entries.
-rw-r--r-- | arch/um/kernel/skas/syscall_kern.c | 3 | ||||
-rw-r--r-- | arch/um/kernel/tt/syscall_kern.c | 3 |
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(®s->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(®s->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; |