Brian Gianforcaro
e8917cc5f3
Kernel: Use Userspace<T> for the chroot syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
20e2a5c111
Kernel: Use Userspace<T> for the module_unload syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
c4927ceb08
Kernel: Use Userspace<T> for the module_load syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
b5a2a215f6
Kernel: Use Userspace<T> for the getrandom syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
c8ae244ab8
Kernel: Use Userspace<T> for the shbuf_get syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
e073f2b59e
Kernel: Use Userspace<T> for the get_thread_name syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
9652b0ae2b
Kernel: Use Userspace<T> for the set_thread_name syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
0e20a6df0a
Kernel: Use Userspace<T> for the connect syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
8bd9dbc220
Kernel: Use Userspace<T> for the accept syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
02660b5d60
Kernel: Use Userspace<T> for the bind syscall, and implementation
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
2bac7190c8
Kernel: Use Userspace<T> for the chmod syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
82bf6e8133
Kernel: Use Userspace<T> for the umount syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
317800324c
Kernel: Use Userspace<T> for the unlink syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
ecfe20efd2
Kernel: Use Userspace<T> for the sigpending syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
fbb26b28b9
Kernel: Use Userspace<T> for the sigprocmask syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
431145148e
Kernel: Use Userspace<T> for the fstat syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
8dd78201a4
Kernel: Use Userspace<T> for the uname syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
cfedd62b5c
Kernel: Use Userspace<T> for the sethostname syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
1d9554f470
Kernel: Use Userspace<T> for the gethostname syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
b069d757a3
Kernel: Use Userspace<T> for the clock_settime syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
1be6145fdf
Kernel: Modifiy clock_settime timespec argument to const
...
The timeppec paramter is read only, and should be const.
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
b4d04fd8d1
Kernel: Use Userspace<T> for the clock_gettime syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
48d9f3c2e6
Kernel: Use Userspace<T> for the getresgid syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
3ca18a88d7
Kernel: Use Userspace<T> for the getresuid syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
7943655838
Kernel: Use Userspace<T> for the times syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
e7728ca8fd
Kernel: Use Userspace<T> for the getgroups syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
80011cd62d
Kernel: Use Userspace<T> for the setgroups syscall
2020-08-10 12:52:15 +02:00
Brian Gianforcaro
0f42463eab
Kernel: Use Userspace<T> for the execve syscall
2020-08-10 12:52:15 +02:00
Ben Wiederhake
bee08a4b9f
Kernel: More PID/TID typing
2020-08-10 11:51:45 +02:00
Ben Wiederhake
7bdf54c837
Kernel: PID/PGID typing
...
This compiles, and fixes two bugs:
- setpgid() confusion (see previous commit)
- tcsetpgrp() now allows to set a non-empty process group even if
the group leader has already died. This makes Serenity slightly
more POSIX-compatible.
2020-08-10 11:51:45 +02:00
Ben Wiederhake
f5744a6f2f
Kernel: PID/TID typing
...
This compiles, and contains exactly the same bugs as before.
The regex 'FIXME: PID/' should reveal all markers that I left behind, including:
- Incomplete conversion
- Issues or things that look fishy
- Actual bugs that will go wrong during runtime
2020-08-10 11:51:45 +02:00
Brian Gianforcaro
35c745ca54
Kernel: Use Userspace<T> for the realpath syscall
2020-08-07 16:18:36 +02:00
Brian Gianforcaro
30b2c0dc85
Kernel: Use Userspace<T> for the getsockopt syscall and Socket interface
...
The way getsockopt is implemented for socket types requires us to push
down Userspace<T> using into those interfaces. This change does so, and
utilizes proper copy implementations instead of the kind of haphazard
pointer dereferencing that was occurring there before.
2020-08-07 16:18:36 +02:00
Brian Gianforcaro
6920d5f423
Kernel: Use Userspace<T> for the setsockopt syscall
2020-08-07 16:18:36 +02:00
Brian Gianforcaro
8fa46bcb7d
Kernel: Use Userspace<T> for the getsockname syscall
2020-08-07 16:18:36 +02:00
Brian Gianforcaro
dc75ea9fc2
Kernel: Use Userspace<T> for the getpeername syscall
2020-08-07 16:18:36 +02:00
Brian Gianforcaro
0db669a9d2
Kernel: Use Userspace<T> for the chown syscall
2020-08-07 16:18:36 +02:00
Brian Gianforcaro
7e7ee2ec94
Kernel: Use Userspace<T> for the mount syscall
2020-08-07 16:18:36 +02:00
Andreas Kling
ddab7ab693
Kernel: Store TTY's foreground process as a WeakPtr<Process>
...
This ensures that we don't leave a stale PGID assigned to the TTY after
the process exits, which would make PID recycling attacks possible.
2020-08-06 11:17:53 +02:00
Brian Gianforcaro
7e6fbef8db
Kernel: Partial usage of Userspace<T> for the poll syscall
...
This change mostly converts poll to Userspace<T> with the caveat
of the fds member of SC_poll_params. It's current usage is a bit
too gnarly for me to take on right now, this appears to need a lot
more love.
In addition to enlightening the syscall to use Userspace<T>, I've
also re-worked most of the handling to use validate_read_and_copy
instead of just directly de-referencing the user pointer. We also
appeared to be missing a re-evaluation of the fds array after the
thread block is awoken.
2020-08-06 10:22:44 +02:00
Brian Gianforcaro
fa666f6897
Kernel: Use Userspace<T> for the futex syscall
...
Utilizie Userspace<T> for the syscall argument itself, as well
as internally in the SC_futex_params struct.
We were double validating the SC_futex_params.timeout validation,
that was removed as well.
2020-08-05 13:03:50 +02:00
Brian Gianforcaro
7490ea9449
Kernel + LibPthread: Use Userspace<T> in the create_thread syscall
2020-08-05 09:36:53 +02:00
Brian Gianforcaro
337e8f98cd
Kernel: Use Userspace<T> for the rename syscall
2020-08-05 09:36:53 +02:00
Brian Gianforcaro
c1541f4a61
Kernel: Use Userspace<T> for the mknod syscall
2020-08-05 09:36:53 +02:00
Brian Gianforcaro
d949b2a367
Kernel: Use Userspace<T> for the set_mmap_name syscall
2020-08-05 09:36:53 +02:00
Brian Gianforcaro
7449921f53
Kernel: Use Userspace<T> for the readlink syscall
2020-08-05 09:36:53 +02:00
Brian Gianforcaro
901dae0227
Kernel: Use Userspace<T> for the mmap syscall
2020-08-05 09:36:53 +02:00
Brian Gianforcaro
74d3b202f1
Kernel: Use Userspace<T> for the waitid syscall
2020-08-05 09:36:53 +02:00
Brian Gianforcaro
84035e1035
Kernel: Use Userspace<T> for the clock_nanosleep syscall
2020-08-05 09:36:53 +02:00
Brian Gianforcaro
baa070afb8
Kernel: Use Userspace<T> for the gettimeofday syscall
2020-08-05 09:36:53 +02:00