mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-11-01 15:08:21 +00:00
syscalls: no longer have invalid state after execve error
This commit is contained in:
@@ -117,7 +117,7 @@ syscallret syscall_execve(const char* name, char* const argv[], char* const envp
|
|||||||
if(err){
|
if(err){
|
||||||
spinlock_release(&thread->proc->lock);
|
spinlock_release(&thread->proc->lock);
|
||||||
retv.errno = err;
|
retv.errno = err;
|
||||||
return retv;
|
goto _clean;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *entry, *stack;
|
void *entry, *stack;
|
||||||
@@ -146,7 +146,9 @@ syscallret syscall_execve(const char* name, char* const argv[], char* const envp
|
|||||||
switch_thread(thread);
|
switch_thread(thread);
|
||||||
|
|
||||||
_clean:
|
_clean:
|
||||||
|
|
||||||
|
// TODO destroy new context
|
||||||
|
vmm_switchcontext(oldctx);
|
||||||
destroyvec(argbuff, argc+1);
|
destroyvec(argbuff, argc+1);
|
||||||
destroyvec(envbuff, envc+1);
|
destroyvec(envbuff, envc+1);
|
||||||
free(namebuff);
|
free(namebuff);
|
||||||
|
|||||||
Reference in New Issue
Block a user