serenity/Kernel/Syscalls
Liav A. ecc9c5409d Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls
To be able to do this, we add a new class called CustodyBase, which can
be resolved on-demand internally in the VirtualFileSystem resolving path
code.

When being resolved, CustodyBase will return a known custody if it was
constructed with such, if that's not the case it will provide the root
custody if the original path is absolute.
Lastly, if that's not the case as well, it will resolve the given dirfd
to provide a Custody object.
2024-06-01 19:25:15 +02:00
..
alarm.cpp Kernel: Move TimerQueue code to the Time subdirectory 2023-06-04 21:32:34 +02:00
anon_create.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
chdir.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
chmod.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
chown.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
clock.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
debug.cpp Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
disown.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
dup2.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
emuctl.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
execve.cpp Kernel: Allow annotating initially loaded executable segments 2024-05-07 16:36:38 -06:00
exit.cpp Kernel: Move Performance-measurement code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
faccessat.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
fallocate.cpp Kernel+LibC: Pass 64-bit integers in syscalls by value 2023-08-12 01:14:26 +02:00
fcntl.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
fork.cpp Kernel+Userland: Convert process syscall region enforce flag to SetOnce 2024-05-14 12:41:51 -06:00
fsync.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
ftruncate.cpp Kernel+LibC: Pass 64-bit integers in syscalls by value 2023-08-12 01:14:26 +02:00
futex.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
get_dir_entries.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
get_stack_bounds.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
getrandom.cpp Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
getuid.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
hostname.cpp Kernel: Use FixedStringBuffer for fixed-length strings in syscalls 2023-08-09 21:06:54 -06:00
inode_watcher.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
ioctl.cpp Kernel: Mark sys$ioctl as not needing the big process lock 2023-12-26 19:20:21 +01:00
jail.cpp Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
keymap.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
kill.cpp Kernel: Don't allocate memory for names of processes and threads 2023-08-09 21:06:54 -06:00
link.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
lseek.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
mkdir.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
mknod.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
mmap.cpp Kernel+Userland: Reject W->X prot region transition after a prctl call 2024-05-14 12:41:51 -06:00
mount.cpp Kernel: Use FixedStringBuffer for fixed-length strings in syscalls 2023-08-09 21:06:54 -06:00
open.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
perf_event.cpp Kernel: Move Performance-measurement code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
pipe.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
pledge.cpp Kernel: Use FixedStringBuffer for fixed-length strings in syscalls 2023-08-09 21:06:54 -06:00
poll.cpp Kernel: Mark sys$poll as not needing the big lock 2023-08-01 05:35:26 +02:00
prctl.cpp Kernel+Userland: Reject W->X prot region transition after a prctl call 2024-05-14 12:41:51 -06:00
process.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
profiled_syscalls.cpp Kernel+ProfileViewer: Display additional filesystem events 2023-09-09 11:26:51 -06:00
profiling.cpp Kernel+LibC: Pass 64-bit integers in syscalls by value 2023-08-12 01:14:26 +02:00
ptrace.cpp Kernel: Stop locking the scheduler spinlock before the ptrace mutex 2024-02-10 08:42:53 +01:00
purge.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
read.cpp Kernel+ProfileViewer: Display additional filesystem events 2023-09-09 11:26:51 -06:00
readlink.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
realpath.cpp Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
rename.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
resource.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
rmdir.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
sched.cpp Kernel: Add jail semantics to methods iterating over thread lists 2023-09-15 11:06:48 -06:00
sendfd.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
setpgid.cpp Kernel: Move TTY-related code to a new subdirectory under Devices 2023-09-09 12:08:59 -06:00
setuid.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
sigaction.cpp Kernel: Shrink instead of expand sigaltstack range to page boundaries 2023-12-24 16:11:35 +01:00
socket.cpp Kernel: Don't try to copy empty Vector in sys$recvmsg 2024-04-19 16:38:55 -04:00
stat.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
statvfs.cpp Kernel/FileSystem: Rename block_size -> logical_block_size 2023-07-28 14:51:07 +02:00
sync.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
SyscallHandler.cpp Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
sysconf.cpp Kernel: Add new sysconf option _SC_GETGR_R_SIZE_MAX 2024-01-06 04:59:50 -07:00
thread.cpp Kernel+LibC+LibELF: Move TLS handling to userspace 2024-04-19 16:46:47 -06:00
times.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
umask.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
uname.cpp Kernel/riscv64: Make the kernel compile 2023-11-10 15:51:31 -07:00
unlink.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
unveil.cpp Kernel: Use FixedStringBuffer for fixed-length strings in syscalls 2023-08-09 21:06:54 -06:00
utime.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
utimensat.cpp Kernel: Ignore dirfd if absolute path is given in VFS-related syscalls 2024-06-01 19:25:15 +02:00
waitid.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
write.cpp Kernel+LibC: Pass 64-bit integers in syscalls by value 2023-08-12 01:14:26 +02:00