Update Linux fork and execve functions

This commit is contained in:
EnderIce2 2024-03-05 01:07:00 +02:00
parent 321305e795
commit 235f42b8d8
Signed by untrusted user who does not match committer: enderice2
GPG Key ID: EACC3AD603BAB4DD

View File

@ -715,6 +715,8 @@ static pid_t linux_fork(SysFrm *sf)
NewProcess->vma->Fork(Parent->vma);
NewProcess->ProgramBreak->SetTable(NewProcess->PageTable);
NewProcess->FileDescriptors->Fork(Parent->FileDescriptors);
NewProcess->Executable = Parent->Executable;
NewProcess->CurrentWorkingDirectory = Parent->CurrentWorkingDirectory;
TCB *NewThread =
TaskManager->CreateThread(NewProcess,
@ -965,6 +967,13 @@ __no_sanitize("undefined") static int linux_execve(SysFrm *sf, const char *pathn
return ret;
}
const char *baseName;
cwk_path_get_basename(pPathname, &baseName, nullptr);
pcb->Rename(baseName);
pcb->SetWorkingDirectory(File->node->Parent);
pcb->SetExe(pPathname);
delete File;
Tasking::Task *ctx = pcb->GetContext();
// ctx->Sleep(1000);