summaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_cred.c11
-rw-r--r--sys/kern/kern_syscall.c4
2 files changed, 14 insertions, 1 deletions
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 <sys/sysctl.h>
#include <sys/reboot.h>
#include <sys/types.h>
+#include <sys/ucred.h>
#include <sys/time.h>
#include <sys/mman.h>
#include <sys/proc.h>
@@ -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);