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

Kernel: Move process extra_gids into protected data :^)

This commit is contained in:
Andreas Kling 2021-03-10 20:07:08 +01:00
parent cbcf891040
commit d677a73b0e
5 changed files with 11 additions and 11 deletions

View file

@ -148,7 +148,7 @@ KResultOr<int> Process::sys$setgroups(ssize_t count, Userspace<const gid_t*> use
return EPERM;
if (!count) {
m_extra_gids.clear();
MutableProtectedData(*this)->extra_gids.clear();
return 0;
}
@ -163,12 +163,13 @@ KResultOr<int> Process::sys$setgroups(ssize_t count, Userspace<const gid_t*> use
unique_extra_gids.set(extra_gid);
}
m_extra_gids.resize(unique_extra_gids.size());
MutableProtectedData protected_data { *this };
protected_data->extra_gids.resize(unique_extra_gids.size());
size_t i = 0;
for (auto& extra_gid : unique_extra_gids) {
if (extra_gid == gid())
continue;
m_extra_gids[i++] = extra_gid;
protected_data->extra_gids[i++] = extra_gid;
}
return 0;
}