mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 10:18:11 +00:00
Kernel: Put Process unveil state in a SpinlockProtected container
This makes path resolution safe to perform without holding the big lock.
This commit is contained in:
parent
24f02bd421
commit
580d89f093
7 changed files with 87 additions and 67 deletions
|
@ -523,9 +523,12 @@ ErrorOr<void> Process::do_exec(NonnullRefPtr<OpenFileDescription> main_program_d
|
|||
m_arguments = move(arguments);
|
||||
m_environment = move(environment);
|
||||
|
||||
m_veil_state = VeilState::None;
|
||||
m_unveiled_paths.clear();
|
||||
m_unveiled_paths.set_metadata({ TRY(KString::try_create("/"sv)), UnveilAccess::None, false });
|
||||
TRY(m_unveil_data.with([&](auto& unveil_data) -> ErrorOr<void> {
|
||||
unveil_data.state = VeilState::None;
|
||||
unveil_data.paths.clear();
|
||||
unveil_data.paths.set_metadata({ TRY(KString::try_create("/"sv)), UnveilAccess::None, false });
|
||||
return {};
|
||||
}));
|
||||
|
||||
for (auto& property : m_coredump_properties)
|
||||
property = {};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue