linux: Convert dup2 calls to dup3
Convert syscall.Dup2 calls to syscall.Dup3. The dup2 syscall is depreciated and is not available on some architectures. Fixes build errors like these when building for arm64: console_linux.go: undefined: syscall.Dup2 Signed-off-by: Geoff Levand <geoff@infradead.org>
This commit is contained in:
parent
4369703200
commit
0e8afb8f9d
|
@ -92,7 +92,7 @@ func (c *linuxConsole) mount(rootfs, mountLabel string, uid, gid int) error {
|
|||
return syscall.Mount(c.slavePath, dest, "bind", syscall.MS_BIND, "")
|
||||
}
|
||||
|
||||
// dupStdio opens the slavePath for the console and dup2s the fds to the current
|
||||
// dupStdio opens the slavePath for the console and dups the fds to the current
|
||||
// processes stdio, fd 0,1,2.
|
||||
func (c *linuxConsole) dupStdio() error {
|
||||
slave, err := c.open(syscall.O_RDWR)
|
||||
|
@ -101,7 +101,7 @@ func (c *linuxConsole) dupStdio() error {
|
|||
}
|
||||
fd := int(slave.Fd())
|
||||
for _, i := range []int{0, 1, 2} {
|
||||
if err := syscall.Dup2(fd, i); err != nil {
|
||||
if err := syscall.Dup3(fd, i, 0); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -272,7 +272,7 @@ func reOpenDevNull(rootfs string) error {
|
|||
}
|
||||
if stat.Rdev == devNullStat.Rdev {
|
||||
// Close and re-open the fd.
|
||||
if err := syscall.Dup2(int(file.Fd()), fd); err != nil {
|
||||
if err := syscall.Dup3(int(file.Fd()), fd, 0); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue