mirror of
https://github.com/RGBCube/serenity
synced 2025-05-18 21:35:06 +00:00
Kernel/VFS: Clear out_parent if path is veiled
Previously, VirtualFileSystem::resolve_path() could return a non-null RefPtr<Custody>* out_parent even if the function errored because the path has been veiled. If code relies on recieving the parent custody even if the path is veiled, it should just call resolve_path_without_veil and do the veil validation manually. This is because it could be that the parent is unveiled but the child isn't or the other way round.
This commit is contained in:
parent
3ebb3d9d52
commit
8c7010f282
1 changed files with 5 additions and 1 deletions
|
@ -828,7 +828,11 @@ ErrorOr<void> VirtualFileSystem::validate_path_against_process_veil(StringView p
|
|||
ErrorOr<NonnullRefPtr<Custody>> VirtualFileSystem::resolve_path(StringView path, Custody& base, RefPtr<Custody>* out_parent, int options, int symlink_recursion_level)
|
||||
{
|
||||
auto custody = TRY(resolve_path_without_veil(path, base, out_parent, options, symlink_recursion_level));
|
||||
TRY(validate_path_against_process_veil(*custody, options));
|
||||
if (auto result = validate_path_against_process_veil(*custody, options); result.is_error()) {
|
||||
if (out_parent)
|
||||
out_parent->clear();
|
||||
return result.release_error();
|
||||
}
|
||||
return custody;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue