mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 17:27:35 +00:00
Kernel: Start adding various file system permission checks.
Fail with EACCES in various situations. Fix userland bugs that were exposed.
This commit is contained in:
parent
43075e5878
commit
f5f136931a
7 changed files with 96 additions and 8 deletions
|
@ -115,6 +115,7 @@ public:
|
|||
State state() const { return m_state; }
|
||||
uid_t uid() const { return m_uid; }
|
||||
gid_t gid() const { return m_gid; }
|
||||
const HashTable<gid_t>& gids() const { return m_gids; }
|
||||
uid_t euid() const { return m_euid; }
|
||||
gid_t egid() const { return m_egid; }
|
||||
pid_t ppid() const { return m_ppid; }
|
||||
|
@ -537,3 +538,18 @@ inline void Process::for_each_living(Callback callback)
|
|||
process = next_process;
|
||||
}
|
||||
}
|
||||
|
||||
inline bool InodeMetadata::may_read(Process& process) const
|
||||
{
|
||||
return may_read(process.euid(), process.gids());
|
||||
}
|
||||
|
||||
inline bool InodeMetadata::may_write(Process& process) const
|
||||
{
|
||||
return may_write(process.euid(), process.gids());
|
||||
}
|
||||
|
||||
inline bool InodeMetadata::may_execute(Process& process) const
|
||||
{
|
||||
return may_execute(process.euid(), process.gids());
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue