forkAndExecInChild

This commit is contained in:
xushiwei
2024-07-18 20:50:49 +08:00
parent fa0ca23798
commit c248a50338

View File

@@ -61,9 +61,9 @@ func forkAndExecInChild(argv0 *c.Char, argv, envv **c.Char, chroot, dir *c.Char,
r1 uintptr r1 uintptr
nextfd int nextfd int
i int i int
cred *Credential
// err error // err error
// pgrp c.Int // pgrp c.Int
cred *Credential
// ngroups, groups uintptr // ngroups, groups uintptr
) )
@@ -316,20 +316,17 @@ func forkAndExecInChild(argv0 *c.Char, argv, envv **c.Char, chroot, dir *c.Char,
// Restore original rlimit. // Restore original rlimit.
if rlimOK && rlim.Cur != 0 { if rlimOK && rlim.Cur != 0 {
/* TODO(xsw): os.Setrlimit(syscall.RLIMIT_NOFILE, (*syscall.Rlimit)(&rlim))
rawSyscall(abi.FuncPCABI0(libc_setrlimit_trampoline), uintptr(RLIMIT_NOFILE), uintptr(unsafe.Pointer(&rlim)), 0)
*/
panic("todo: syscall.forkAndExecInChild - rlimOK")
} }
/* TODO(xsw):
// Time to exec. // Time to exec.
_, _, err1 = rawSyscall(abi.FuncPCABI0(libc_execve_trampoline), os.Execve(argv0, argv, envv)
uintptr(unsafe.Pointer(argv0)), /* TODO(xsw):
uintptr(unsafe.Pointer(&argv[0])), ret := os.Execve(argv0, argv, envv)
uintptr(unsafe.Pointer(&envv[0]))) if ret != 0 {
err1 = Errno(ret)
}
*/ */
panic("todo: syscall.forkAndExecInChild - execve")
childerror: childerror:
/* TODO(xsw): /* TODO(xsw):