1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-04 09:07:34 +00:00

Kernel+LibC: Introduce a "dumpable" flag for processes

This new flag controls two things:
- Whether the kernel will generate core dumps for the process
- Whether the EUID:EGID should own the process's files in /proc

Processes are automatically made non-dumpable when their EUID or EGID is
changed, either via syscalls that specifically modify those ID's, or via
sys$execve(), when a set-uid or set-gid program is executed.

A process can change its own dumpable flag at any time by calling the
new sys$prctl(PR_SET_DUMPABLE) syscall.

Fixes #4504.
This commit is contained in:
Andreas Kling 2020-12-25 18:27:42 +01:00
parent 3c9bd911b8
commit 82f86e35d6
13 changed files with 199 additions and 7 deletions

View file

@ -42,6 +42,11 @@ namespace Kernel {
OwnPtr<CoreDump> CoreDump::create(Process& process, const String& output_path)
{
if (!process.is_dumpable()) {
dbgln("Refusing to generate CoreDump for non-dumpable process {}", process.pid().value());
return nullptr;
}
auto fd = create_target_file(process, output_path);
if (!fd)
return nullptr;