From 524b56b5e28875b48613b812be92476573bb8325 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Wed, 9 Jul 2025 01:07:03 -0400 Subject: kernel: cred: Introduce SYS_setuid syscall Signed-off-by: Ian Moffett --- sys/kern/kern_cred.c | 11 +++++++++++ sys/kern/kern_syscall.c | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'sys/kern') diff --git a/sys/kern/kern_cred.c b/sys/kern/kern_cred.c index 828ba3b..e1202fc 100644 --- a/sys/kern/kern_cred.c +++ b/sys/kern/kern_cred.c @@ -55,3 +55,14 @@ setuid(uid_t new) spinlock_release(&cur_cred->lock); return 0; } + +/* + * setuid() syscall + * + * arg0: `new' + */ +scret_t +sys_setuid(struct syscall_args *scargs) +{ + return setuid(scargs->arg0); +} diff --git a/sys/kern/kern_syscall.c b/sys/kern/kern_syscall.c index 739dd7f..276c7c7 100644 --- a/sys/kern/kern_syscall.c +++ b/sys/kern/kern_syscall.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -55,7 +56,8 @@ scret_t(*g_sctab[])(struct syscall_args *) = { sys_sleep, /* SYS_sleep */ sys_inject, /* SYS_inject */ sys_getpid, /* SYS_getpid */ - sys_getppid /* SYS_getppid */ + sys_getppid, /* SYS_getppid */ + sys_setuid, /* SYS_setuid */ }; const size_t MAX_SYSCALLS = NELEM(g_sctab); -- cgit v1.2.3