Kernel: rmdir("/") should fail instead of asserting

We can't assume there's always a parent custody -- when we open "/"
there isn't gonna be one!

Fixes #1858.
This commit is contained in:
Andreas Kling 2020-04-19 18:07:16 +02:00
parent 4c19305a17
commit 7eeea4d57f
Notes: sideshowbarker 2024-07-19 07:27:43 +09:00
2 changed files with 14 additions and 0 deletions

View file

@ -630,6 +630,9 @@ KResult VFS::rmdir(StringView path, Custody& base)
if (!inode.is_directory())
return KResult(-ENOTDIR);
if (!parent_custody)
return KResult(-EBUSY);
auto& parent_inode = parent_custody->inode();
if (!parent_inode.metadata().may_write(*Process::current))