From 08ad0c42b4a50d142121a5eec2fcd5195c24998c Mon Sep 17 00:00:00 2001 From: dzwdz Date: Sun, 15 May 2022 14:28:45 +0200 Subject: kernel/syscall: ensure SYSCALL_RETURN value is used --- src/kernel/syscalls.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/kernel/syscalls.c b/src/kernel/syscalls.c index be1a6c2..8636a1b 100644 --- a/src/kernel/syscalls.c +++ b/src/kernel/syscalls.c @@ -9,7 +9,10 @@ #include #include -#define SYSCALL_RETURN(val) return regs_savereturn(&process_current->regs, val) +#define SYSCALL_RETURN(val) do { \ + assert(process_current->state == PS_RUNNING); \ + return regs_savereturn(&process_current->regs, val); \ +} while (0) _Noreturn void _syscall_exit(int ret) { process_kill(process_current, ret); @@ -34,9 +37,9 @@ int _syscall_await(void) { if (!has_children) { process_transition(process_current, PS_RUNNING); SYSCALL_RETURN(~0); // TODO errno - } else { - SYSCALL_RETURN(-1); } + + return -1; // dummy } int _syscall_fork(int flags, handle_t __user *fs_front) { -- cgit v1.2.3