From eb7b0c76a82c88bb606e16f3a534545af739b13d Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 16 Feb 2020 00:27:10 +0100 Subject: [PATCH] Kernel: Remove SmapDisabler in sys$setgroups() --- Kernel/Process.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index 1bc3bc3f11..51e68d979e 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -2618,17 +2618,21 @@ int Process::sys$getgroups(ssize_t count, gid_t* gids) return 0; } -int Process::sys$setgroups(ssize_t count, const gid_t* gids) +int Process::sys$setgroups(ssize_t count, const gid_t* user_gids) { REQUIRE_PROMISE(id); if (count < 0) return -EINVAL; if (!is_superuser()) return -EPERM; - if (count && !validate_read(gids, count)) + if (count && !validate_read(user_gids, count)) return -EFAULT; + + Vector gids; + gids.resize(count); + copy_from_user(gids.data(), user_gids, sizeof(gid_t) * count); + m_extra_gids.clear(); - SmapDisabler disabler; for (int i = 0; i < count; ++i) { if (gids[i] == m_gid) continue;