Age | Commit message (Collapse) | Author | |
---|---|---|---|
2020-08-19 | Kernel: Distinguish between new and old process groups with equal pgids | AnotherTest | |
This does not add any behaviour change to the processes, but it ties a TTY to an active process group via TIOCSPGRP, and returns the TTY to the kernel when all processes in the process group die. Also makes the TTY keep a link to the original controlling process' parent (for SIGCHLD) instead of the process itself. | |||
2020-08-19 | Kernel: Use Userspace<T> for the recvfrom syscall, and Socket implementation | Brian Gianforcaro | |
This fixes a bunch of unchecked kernel reads and writes, seems like they would might exploitable :). Write of sockaddr_in size to any address you please... | |||
2020-08-19 | Kernel: Use Userspace<T> for the sendto syscall, and Socket implementation | Brian Gianforcaro | |
Note that the data member is of type ImmutableBufferArgument, which has no Userspace<T> usage. I left it alone for now, to be fixed in a future change holistically for all usages. | |||
2020-08-17 | Kernel: Bump process thread count to a 32-bit value | Andreas Kling | |
We should support more than 65535 threads, after all. :^) | |||
2020-08-15 | Kernel+LibC+UserspaceEmulator: Bring back sys$dup2() | Andreas Kling | |
This is racy in userspace and non-racy in kernelspace so let's keep it in kernelspace. The behavior change where CLOEXEC is preserved when dup2() is called with (old_fd == new_fd) was good though, let's keep that. | |||
2020-08-15 | Kernel+LibC+UserspaceEmulator: Remove sys$dup() and sys$dup2() | Andreas Kling | |
We can just implement these in userspace, so yay two less syscalls! | |||
2020-08-10 | Kernel: Use Userspace<T> for the exit_thread syscall | Brian Gianforcaro | |
Userspace<void*> is a bit strange here, as it would appear to the user that we intend to de-refrence the pointer in kernel mode. However I think it does a good join of illustrating that we are treating the void* as a value type, instead of a pointer type. | |||
2020-08-10 | Kernel: Use Userspace<T> for the join_thread syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the chroot syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the module_unload syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the module_load syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the getrandom syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the shbuf_get syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the get_thread_name syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the set_thread_name syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the connect syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the accept syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the bind syscall, and implementation | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the chmod syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the umount syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the unlink syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the sigpending syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the sigprocmask syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the fstat syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the uname syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the sethostname syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the gethostname syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the clock_settime syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Modifiy clock_settime timespec argument to const | Brian Gianforcaro | |
The timeppec paramter is read only, and should be const. | |||
2020-08-10 | Kernel: Use Userspace<T> for the clock_gettime syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the getresgid syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the getresuid syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the times syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the getgroups syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the setgroups syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: Use Userspace<T> for the execve syscall | Brian Gianforcaro | |
2020-08-10 | Kernel: More PID/TID typing | Ben Wiederhake | |
2020-08-10 | Kernel: PID/PGID typing | Ben Wiederhake | |
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 | Kernel: PID/TID typing | Ben Wiederhake | |
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-07 | Kernel: Use Userspace<T> for the realpath syscall | Brian Gianforcaro | |
2020-08-07 | Kernel: Use Userspace<T> for the getsockopt syscall and Socket interface | Brian Gianforcaro | |
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 | Kernel: Use Userspace<T> for the setsockopt syscall | Brian Gianforcaro | |
2020-08-07 | Kernel: Use Userspace<T> for the getsockname syscall | Brian Gianforcaro | |
2020-08-07 | Kernel: Use Userspace<T> for the getpeername syscall | Brian Gianforcaro | |
2020-08-07 | Kernel: Use Userspace<T> for the chown syscall | Brian Gianforcaro | |
2020-08-07 | Kernel: Use Userspace<T> for the mount syscall | Brian Gianforcaro | |
2020-08-06 | Kernel: Store TTY's foreground process as a WeakPtr<Process> | Andreas Kling | |
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 | Kernel: Partial usage of Userspace<T> for the poll syscall | Brian Gianforcaro | |
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-05 | Kernel: Use Userspace<T> for the futex syscall | Brian Gianforcaro | |
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 | Kernel + LibPthread: Use Userspace<T> in the create_thread syscall | Brian Gianforcaro | |