feat(kernel): implement handling symbolic links in paths

Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
2025-03-27 14:33:29 +00:00
parent 13d52897b8
commit 7491f19f9a
6 changed files with 58 additions and 3 deletions

View File

@ -40,9 +40,20 @@ namespace Execute
return -ENOENT;
if (!fd->IsRegularFile())
return -ENOEXEC;
{
if (fd->IsSymbolicLink())
{
char buffer[512];
fd->ReadLink(buffer, sizeof(buffer));
fd = fs->GetByPath(buffer, fd->Parent);
if (fd == nullptr)
return -ENOENT;
}
else
return -ENOEXEC;
}
switch (GetBinaryType(Path))
switch (GetBinaryType(fd))
{
case BinaryType::BinTypeELF:
{