mirror of
https://github.com/RGBCube/serenity
synced 2025-07-24 17:57:35 +00:00
Kernel: Remove SmapDisabler in sys$getgroups()
This commit is contained in:
parent
eb7b0c76a8
commit
1f55079488
1 changed files with 7 additions and 5 deletions
|
@ -2600,7 +2600,7 @@ int Process::sys$sigaction(int signum, const sigaction* act, sigaction* old_act)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Process::sys$getgroups(ssize_t count, gid_t* gids)
|
int Process::sys$getgroups(ssize_t count, gid_t* user_gids)
|
||||||
{
|
{
|
||||||
REQUIRE_PROMISE(stdio);
|
REQUIRE_PROMISE(stdio);
|
||||||
if (count < 0)
|
if (count < 0)
|
||||||
|
@ -2609,12 +2609,14 @@ int Process::sys$getgroups(ssize_t count, gid_t* gids)
|
||||||
return m_extra_gids.size();
|
return m_extra_gids.size();
|
||||||
if (count != (int)m_extra_gids.size())
|
if (count != (int)m_extra_gids.size())
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (!validate_write_typed(gids, m_extra_gids.size()))
|
if (!validate_write_typed(user_gids, m_extra_gids.size()))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
size_t i = 0;
|
|
||||||
SmapDisabler disabler;
|
Vector<gid_t> gids;
|
||||||
for (auto gid : m_extra_gids)
|
for (auto gid : m_extra_gids)
|
||||||
gids[i++] = gid;
|
gids.append(gid);
|
||||||
|
|
||||||
|
copy_to_user(user_gids, gids.data(), sizeof(gid_t) * count);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue