ladybird/Libraries/LibSandbox/Seccomp.h
Andreas Kling b759954486 Compositor: Allow GPU driver executable mappings on Linux
Let the Linux Compositor sandbox permit writable executable mappings
used lazily by GPU drivers after WebGL context creation. Keep this
allowance scoped to the Compositor process so WebContent retains the
existing memory mapping restrictions.
2026-06-19 19:12:26 +02:00

51 lines
1.2 KiB
C++

/*
* Copyright (c) 2026-present, the Ladybird developers.
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Error.h>
#include <AK/Vector.h>
#include <linux/filter.h>
namespace Sandbox {
class SeccompPolicy {
public:
SeccompPolicy();
void deny_readonly_filesystem_probes();
void deny_current_directory_queries();
void allow_readonly_file_opens();
void allow_filesystem_metadata_queries();
void allow_filesystem_writes();
void allow_file_descriptor_operations();
void allow_process_creation();
void allow_ipc();
void allow_network();
void allow_memory_without_executable_mappings();
void allow_executable_memory_mappings();
void allow_writable_executable_memory_mappings();
void allow_threads();
void allow_signals();
void allow_clocks();
void allow_gpu_device_operations();
void allow_process_metadata();
void allow_common_runtime();
void allow_prctl();
void allow_exit();
[[nodiscard]] ErrorOr<void> install();
private:
void append(sock_filter);
void append_architecture_check();
void append_load_syscall_number();
void append_kill();
Vector<sock_filter> m_filter;
};
}