|
@@ -12,14 +12,18 @@ namespace Kernel {
|
|
|
ErrorOr<FlatPtr> Process::sys$prctl(int option, FlatPtr arg1, [[maybe_unused]] FlatPtr arg2)
|
|
|
{
|
|
|
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
|
|
|
- switch (option) {
|
|
|
- case PR_GET_DUMPABLE:
|
|
|
- return is_dumpable();
|
|
|
- case PR_SET_DUMPABLE:
|
|
|
- set_dumpable(arg1);
|
|
|
- return 0;
|
|
|
- }
|
|
|
- return EINVAL;
|
|
|
+ return with_mutable_protected_data([&](auto& protected_data) -> ErrorOr<FlatPtr> {
|
|
|
+ switch (option) {
|
|
|
+ case PR_GET_DUMPABLE:
|
|
|
+ return protected_data.dumpable;
|
|
|
+ case PR_SET_DUMPABLE:
|
|
|
+ if (arg1 != 0 && arg1 != 1)
|
|
|
+ return EINVAL;
|
|
|
+ protected_data.dumpable = arg1;
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ return EINVAL;
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
}
|