1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 02:28:12 +00:00
serenity/Kernel/Syscalls
Andreas Kling 04c362b4dd Kernel: Fix TOCTOU in sys$unveil()
Make sure we reject the unveil attempt with EPERM if the veil was locked
by another thread while we were parsing argument (and not holding the
veil state spinlock.)

Thanks Brian for spotting this! :^)

Amendment to #14907.
2022-08-18 01:04:28 +02:00
..
access.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
alarm.cpp Kernel: Validate the sys$alarm signal send always succeeds 2022-08-10 11:38:18 -04:00
anon_create.cpp Kernel: Mark sys$anon_create() as not needing the big lock 2022-03-08 00:19:49 +01:00
beep.cpp Kernel: Add CommandLine option to disable or enable the PC speaker 2022-01-23 00:40:54 +00:00
chdir.cpp Kernel: Don't do path resolution in sys$chdir() while holding spinlock 2022-08-18 00:58:34 +02:00
chmod.cpp Kernel: Mark sys$chmod() as not needing the big lock 2022-03-09 16:43:00 +01:00
chown.cpp Kernel: Remove big lock from sys$chown 2022-04-09 23:46:02 +02:00
clock.cpp Kernel/LibC: Implement posix syscall clock_getres() 2022-07-25 15:33:50 +02:00
debug.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
disown.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
dup2.cpp Kernel: Mark sys$dup2() as not needing the big lock 2022-03-09 16:43:00 +01:00
emuctl.cpp Kernel: Mark sys$emuctl() as not needing the big lock 2022-03-09 16:43:00 +01:00
execve.cpp Everywhere: Make the codebase more architecture aware 2022-07-27 21:46:42 +00:00
exit.cpp Kernel: Fix a few typos 2021-10-01 00:51:49 +01:00
fallocate.cpp Kernel+LibC: Add posix_fallocate syscall 2022-07-15 12:42:43 +02:00
fcntl.cpp Kernel: Support F_SETLKW in fcntl 2022-07-21 16:39:22 +02:00
fork.cpp Kernel: Leak a ref() on the new Process ASAP in sys$fork() 2022-08-15 00:53:28 +02:00
fsync.cpp Kernel: Mark sys$fsync() as not needing the big lock 2022-03-08 00:19:49 +01:00
ftruncate.cpp Kernel: Mark sys$ftruncate() as not needing the big lock 2022-03-09 16:43:00 +01:00
futex.cpp Kernel: Clean up sys$futex and add support for cross-process futexes 2022-07-21 16:39:22 +02:00
get_dir_entries.cpp Kernel: Convert process file descriptor table to a SpinlockProtected 2022-01-29 02:17:06 +01:00
get_stack_bounds.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
getrandom.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
getuid.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
hostname.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
inode_watcher.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
ioctl.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
keymap.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
kill.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
link.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
lseek.cpp Kernel: Mark sys$lseek() as not needing the big lock 2022-03-09 16:43:00 +01:00
mkdir.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
mknod.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
mmap.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
mount.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
open.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
perf_event.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
pipe.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
pledge.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
poll.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
prctl.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
process.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
profiling.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
ptrace.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
purge.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
read.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
readlink.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
realpath.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
rename.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
resource.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
rmdir.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
sched.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
sendfd.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
setpgid.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
setuid.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
sigaction.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
socket.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
stat.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
statvfs.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
sync.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
sysconf.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
thread.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
times.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
umask.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
uname.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
unlink.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
unveil.cpp Kernel: Fix TOCTOU in sys$unveil() 2022-08-18 01:04:28 +02:00
utime.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
utimensat.cpp Kernel+LibC: Implement futimens(3) 2022-05-21 18:15:00 +02:00
waitid.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
write.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00