summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastiaan van Stijn <thaJeztah@users.noreply.github.com>2023-04-26 16:54:03 +0200
committerGitHub <noreply@github.com>2023-04-26 16:54:03 +0200
commit18a0ab6b3b1c1fca79c5a5f929a665a2734bcdad (patch)
treed3d905f2548e14676532525dbdbd5f75d4a500d1
parent214e200f956b770e6dc239b062424c03774c63fe (diff)
parent4876c09b2a0cd28016ab23911d8f4abd78007f00 (diff)
downloaddocker-18a0ab6b3b1c1fca79c5a5f929a665a2734bcdad.tar.gz
Merge pull request #45382 from wojiushixiaobai/patch-pty
build(deps): bump github.com/creack/pty from v1.1.11 to v1.1.18
-rw-r--r--vendor.mod2
-rw-r--r--vendor.sum3
-rw-r--r--vendor/github.com/creack/pty/Dockerfile.golang17
-rw-r--r--vendor/github.com/creack/pty/Dockerfile.riscv13
-rw-r--r--vendor/github.com/creack/pty/README.md19
-rw-r--r--vendor/github.com/creack/pty/asm_solaris_amd64.s18
-rw-r--r--vendor/github.com/creack/pty/doc.go2
-rw-r--r--vendor/github.com/creack/pty/ioctl.go8
-rw-r--r--vendor/github.com/creack/pty/ioctl_bsd.go1
-rw-r--r--vendor/github.com/creack/pty/ioctl_solaris.go36
-rw-r--r--vendor/github.com/creack/pty/ioctl_unsupported.go13
-rw-r--r--vendor/github.com/creack/pty/mktypes.bash2
-rw-r--r--vendor/github.com/creack/pty/pty_darwin.go5
-rw-r--r--vendor/github.com/creack/pty/pty_dragonfly.go3
-rw-r--r--vendor/github.com/creack/pty/pty_freebsd.go3
-rw-r--r--vendor/github.com/creack/pty/pty_linux.go9
-rw-r--r--vendor/github.com/creack/pty/pty_netbsd.go69
-rw-r--r--vendor/github.com/creack/pty/pty_openbsd.go3
-rw-r--r--vendor/github.com/creack/pty/pty_solaris.go153
-rw-r--r--vendor/github.com/creack/pty/pty_unsupported.go3
-rw-r--r--vendor/github.com/creack/pty/run.go29
-rw-r--r--vendor/github.com/creack/pty/start.go25
-rw-r--r--vendor/github.com/creack/pty/start_windows.go19
-rw-r--r--vendor/github.com/creack/pty/test_crosscompile.sh46
-rw-r--r--vendor/github.com/creack/pty/util.go64
-rw-r--r--vendor/github.com/creack/pty/util_solaris.go51
-rw-r--r--vendor/github.com/creack/pty/winsize.go27
-rw-r--r--vendor/github.com/creack/pty/winsize_unix.go35
-rw-r--r--vendor/github.com/creack/pty/winsize_unsupported.go23
-rw-r--r--vendor/github.com/creack/pty/ztypes_386.go3
-rw-r--r--vendor/github.com/creack/pty/ztypes_amd64.go3
-rw-r--r--vendor/github.com/creack/pty/ztypes_arm.go3
-rw-r--r--vendor/github.com/creack/pty/ztypes_arm64.go5
-rw-r--r--vendor/github.com/creack/pty/ztypes_dragonfly_amd64.go3
-rw-r--r--vendor/github.com/creack/pty/ztypes_freebsd_386.go3
-rw-r--r--vendor/github.com/creack/pty/ztypes_freebsd_amd64.go3
-rw-r--r--vendor/github.com/creack/pty/ztypes_freebsd_arm.go3
-rw-r--r--vendor/github.com/creack/pty/ztypes_freebsd_arm64.go3
-rw-r--r--vendor/github.com/creack/pty/ztypes_freebsd_ppc64.go14
-rw-r--r--vendor/github.com/creack/pty/ztypes_loong64.go12
-rw-r--r--vendor/github.com/creack/pty/ztypes_mipsx.go7
-rw-r--r--vendor/github.com/creack/pty/ztypes_netbsd_32bit_int.go17
-rw-r--r--vendor/github.com/creack/pty/ztypes_openbsd_32bit_int.go11
-rw-r--r--vendor/github.com/creack/pty/ztypes_ppc64.go1
-rw-r--r--vendor/github.com/creack/pty/ztypes_ppc64le.go1
-rw-r--r--vendor/github.com/creack/pty/ztypes_riscvx.go5
-rw-r--r--vendor/github.com/creack/pty/ztypes_s390x.go1
-rw-r--r--vendor/modules.txt2
48 files changed, 537 insertions, 264 deletions
diff --git a/vendor.mod b/vendor.mod
index b1fd850121..0f917bf495 100644
--- a/vendor.mod
+++ b/vendor.mod
@@ -30,7 +30,7 @@ require (
github.com/containerd/fifo v1.1.0
github.com/containerd/typeurl/v2 v2.1.0
github.com/coreos/go-systemd/v22 v22.5.0
- github.com/creack/pty v1.1.11
+ github.com/creack/pty v1.1.18
github.com/deckarep/golang-set/v2 v2.3.0
github.com/docker/distribution v2.8.1+incompatible
github.com/docker/go-connections v0.4.0
diff --git a/vendor.sum b/vendor.sum
index 84cbe099a3..c3d6b2b934 100644
--- a/vendor.sum
+++ b/vendor.sum
@@ -470,8 +470,9 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsr
github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
-github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw=
github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
+github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
+github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4=
github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI=
github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
diff --git a/vendor/github.com/creack/pty/Dockerfile.golang b/vendor/github.com/creack/pty/Dockerfile.golang
new file mode 100644
index 0000000000..2ee82a3a1f
--- /dev/null
+++ b/vendor/github.com/creack/pty/Dockerfile.golang
@@ -0,0 +1,17 @@
+ARG GOVERSION=1.14
+FROM golang:${GOVERSION}
+
+# Set base env.
+ARG GOOS=linux
+ARG GOARCH=amd64
+ENV GOOS=${GOOS} GOARCH=${GOARCH} CGO_ENABLED=0 GOFLAGS='-v -ldflags=-s -ldflags=-w'
+
+# Pre compile the stdlib for 386/arm (32bits).
+RUN go build -a std
+
+# Add the code to the image.
+WORKDIR pty
+ADD . .
+
+# Build the lib.
+RUN go build
diff --git a/vendor/github.com/creack/pty/Dockerfile.riscv b/vendor/github.com/creack/pty/Dockerfile.riscv
index adfdf82c89..7a30c94d03 100644
--- a/vendor/github.com/creack/pty/Dockerfile.riscv
+++ b/vendor/github.com/creack/pty/Dockerfile.riscv
@@ -1,3 +1,4 @@
+# NOTE: Using 1.13 as a base to build the RISCV compiler, the resulting version is based on go1.6.
FROM golang:1.13
# Clone and complie a riscv compatible version of the go compiler.
@@ -8,7 +9,15 @@ ENV PATH=/riscv-go/misc/riscv:/riscv-go/bin:$PATH
RUN cd /riscv-go/src && GOROOT_BOOTSTRAP=$(go env GOROOT) ./make.bash
ENV GOROOT=/riscv-go
-# Make sure we compile.
+# Set the base env.
+ENV GOOS=linux GOARCH=riscv CGO_ENABLED=0 GOFLAGS='-v -ldflags=-s -ldflags=-w'
+
+# Pre compile the stdlib.
+RUN go build -a std
+
+# Add the code to the image.
WORKDIR pty
ADD . .
-RUN GOOS=linux GOARCH=riscv go build
+
+# Build the lib.
+RUN go build
diff --git a/vendor/github.com/creack/pty/README.md b/vendor/github.com/creack/pty/README.md
index 5275014a7a..a4fe7670d4 100644
--- a/vendor/github.com/creack/pty/README.md
+++ b/vendor/github.com/creack/pty/README.md
@@ -4,9 +4,13 @@ Pty is a Go package for using unix pseudo-terminals.
## Install
- go get github.com/creack/pty
+```sh
+go get github.com/creack/pty
+```
+
+## Examples
-## Example
+Note that those examples are for demonstration purpose only, to showcase how to use the library. They are not meant to be used in any kind of production environment.
### Command
@@ -14,10 +18,11 @@ Pty is a Go package for using unix pseudo-terminals.
package main
import (
- "github.com/creack/pty"
"io"
"os"
"os/exec"
+
+ "github.com/creack/pty"
)
func main() {
@@ -51,7 +56,7 @@ import (
"syscall"
"github.com/creack/pty"
- "golang.org/x/crypto/ssh/terminal"
+ "golang.org/x/term"
)
func test() error {
@@ -77,15 +82,17 @@ func test() error {
}
}()
ch <- syscall.SIGWINCH // Initial resize.
+ defer func() { signal.Stop(ch); close(ch) }() // Cleanup signals when done.
// Set stdin in raw mode.
- oldState, err := terminal.MakeRaw(int(os.Stdin.Fd()))
+ oldState, err := term.MakeRaw(int(os.Stdin.Fd()))
if err != nil {
panic(err)
}
- defer func() { _ = terminal.Restore(int(os.Stdin.Fd()), oldState) }() // Best effort.
+ defer func() { _ = term.Restore(int(os.Stdin.Fd()), oldState) }() // Best effort.
// Copy stdin to the pty and the pty to stdout.
+ // NOTE: The goroutine will keep reading until the next keystroke before returning.
go func() { _, _ = io.Copy(ptmx, os.Stdin) }()
_, _ = io.Copy(os.Stdout, ptmx)
diff --git a/vendor/github.com/creack/pty/asm_solaris_amd64.s b/vendor/github.com/creack/pty/asm_solaris_amd64.s
new file mode 100644
index 0000000000..7fbef8ee66
--- /dev/null
+++ b/vendor/github.com/creack/pty/asm_solaris_amd64.s
@@ -0,0 +1,18 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build gc
+//+build gc
+
+#include "textflag.h"
+
+//
+// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go
+//
+
+TEXT ·sysvicall6(SB),NOSPLIT,$0-88
+ JMP syscall·sysvicall6(SB)
+
+TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88
+ JMP syscall·rawSysvicall6(SB)
diff --git a/vendor/github.com/creack/pty/doc.go b/vendor/github.com/creack/pty/doc.go
index 190cfbea92..3c8b3244e8 100644
--- a/vendor/github.com/creack/pty/doc.go
+++ b/vendor/github.com/creack/pty/doc.go
@@ -10,7 +10,7 @@ import (
// available on the current platform.
var ErrUnsupported = errors.New("unsupported")
-// Opens a pty and its corresponding tty.
+// Open a pty and its corresponding tty.
func Open() (pty, tty *os.File, err error) {
return open()
}
diff --git a/vendor/github.com/creack/pty/ioctl.go b/vendor/github.com/creack/pty/ioctl.go
index c85cdcd14a..3cabedd96a 100644
--- a/vendor/github.com/creack/pty/ioctl.go
+++ b/vendor/github.com/creack/pty/ioctl.go
@@ -1,9 +1,15 @@
-// +build !windows,!solaris
+//go:build !windows && !solaris && !aix
+// +build !windows,!solaris,!aix
package pty
import "syscall"
+const (
+ TIOCGWINSZ = syscall.TIOCGWINSZ
+ TIOCSWINSZ = syscall.TIOCSWINSZ
+)
+
func ioctl(fd, cmd, ptr uintptr) error {
_, _, e := syscall.Syscall(syscall.SYS_IOCTL, fd, cmd, ptr)
if e != 0 {
diff --git a/vendor/github.com/creack/pty/ioctl_bsd.go b/vendor/github.com/creack/pty/ioctl_bsd.go
index 73b12c53cf..db3bf845be 100644
--- a/vendor/github.com/creack/pty/ioctl_bsd.go
+++ b/vendor/github.com/creack/pty/ioctl_bsd.go
@@ -1,3 +1,4 @@
+//go:build darwin || dragonfly || freebsd || netbsd || openbsd
// +build darwin dragonfly freebsd netbsd openbsd
package pty
diff --git a/vendor/github.com/creack/pty/ioctl_solaris.go b/vendor/github.com/creack/pty/ioctl_solaris.go
index f63985f34c..bff22dad0b 100644
--- a/vendor/github.com/creack/pty/ioctl_solaris.go
+++ b/vendor/github.com/creack/pty/ioctl_solaris.go
@@ -1,30 +1,48 @@
+//go:build solaris
+// +build solaris
+
package pty
import (
- "golang.org/x/sys/unix"
+ "syscall"
"unsafe"
)
+//go:cgo_import_dynamic libc_ioctl ioctl "libc.so"
+//go:linkname procioctl libc_ioctl
+var procioctl uintptr
+
const (
// see /usr/include/sys/stropts.h
- I_PUSH = uintptr((int32('S')<<8 | 002))
- I_STR = uintptr((int32('S')<<8 | 010))
- I_FIND = uintptr((int32('S')<<8 | 013))
+ I_PUSH = uintptr((int32('S')<<8 | 002))
+ I_STR = uintptr((int32('S')<<8 | 010))
+ I_FIND = uintptr((int32('S')<<8 | 013))
+
// see /usr/include/sys/ptms.h
ISPTM = (int32('P') << 8) | 1
UNLKPT = (int32('P') << 8) | 2
PTSSTTY = (int32('P') << 8) | 3
ZONEPT = (int32('P') << 8) | 4
OWNERPT = (int32('P') << 8) | 5
+
+ // see /usr/include/sys/termios.h
+ TIOCSWINSZ = (uint32('T') << 8) | 103
+ TIOCGWINSZ = (uint32('T') << 8) | 104
)
type strioctl struct {
- ic_cmd int32
- ic_timout int32
- ic_len int32
- ic_dp unsafe.Pointer
+ icCmd int32
+ icTimeout int32
+ icLen int32
+ icDP unsafe.Pointer
}
+// Defined in asm_solaris_amd64.s.
+func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
func ioctl(fd, cmd, ptr uintptr) error {
- return unix.IoctlSetInt(int(fd), uint(cmd), int(ptr))
+ if _, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, fd, cmd, ptr, 0, 0, 0); errno != 0 {
+ return errno
+ }
+ return nil
}
diff --git a/vendor/github.com/creack/pty/ioctl_unsupported.go b/vendor/github.com/creack/pty/ioctl_unsupported.go
new file mode 100644
index 0000000000..2449a27ee7
--- /dev/null
+++ b/vendor/github.com/creack/pty/ioctl_unsupported.go
@@ -0,0 +1,13 @@
+//go:build aix
+// +build aix
+
+package pty
+
+const (
+ TIOCGWINSZ = 0
+ TIOCSWINSZ = 0
+)
+
+func ioctl(fd, cmd, ptr uintptr) error {
+ return ErrUnsupported
+}
diff --git a/vendor/github.com/creack/pty/mktypes.bash b/vendor/github.com/creack/pty/mktypes.bash
index 82ee16721c..7f71bda6a6 100644
--- a/vendor/github.com/creack/pty/mktypes.bash
+++ b/vendor/github.com/creack/pty/mktypes.bash
@@ -13,7 +13,7 @@ GODEFS="go tool cgo -godefs"
$GODEFS types.go |gofmt > ztypes_$GOARCH.go
case $GOOS in
-freebsd|dragonfly|openbsd)
+freebsd|dragonfly|netbsd|openbsd)
$GODEFS types_$GOOS.go |gofmt > ztypes_$GOOSARCH.go
;;
esac
diff --git a/vendor/github.com/creack/pty/pty_darwin.go b/vendor/github.com/creack/pty/pty_darwin.go
index 6344b6b0ef..9bdd71d08d 100644
--- a/vendor/github.com/creack/pty/pty_darwin.go
+++ b/vendor/github.com/creack/pty/pty_darwin.go
@@ -1,3 +1,6 @@
+//go:build darwin
+// +build darwin
+
package pty
import (
@@ -33,7 +36,7 @@ func open() (pty, tty *os.File, err error) {
return nil, nil, err
}
- t, err := os.OpenFile(sname, os.O_RDWR, 0)
+ t, err := os.OpenFile(sname, os.O_RDWR|syscall.O_NOCTTY, 0)
if err != nil {
return nil, nil, err
}
diff --git a/vendor/github.com/creack/pty/pty_dragonfly.go b/vendor/github.com/creack/pty/pty_dragonfly.go
index b7d1f20f29..aa916aadf1 100644
--- a/vendor/github.com/creack/pty/pty_dragonfly.go
+++ b/vendor/github.com/creack/pty/pty_dragonfly.go
@@ -1,3 +1,6 @@
+//go:build dragonfly
+// +build dragonfly
+
package pty
import (
diff --git a/vendor/github.com/creack/pty/pty_freebsd.go b/vendor/github.com/creack/pty/pty_freebsd.go
index 63b6d91337..bcd3b6f90f 100644
--- a/vendor/github.com/creack/pty/pty_freebsd.go
+++ b/vendor/github.com/creack/pty/pty_freebsd.go
@@ -1,3 +1,6 @@
+//go:build freebsd
+// +build freebsd
+
package pty
import (
diff --git a/vendor/github.com/creack/pty/pty_linux.go b/vendor/github.com/creack/pty/pty_linux.go
index 4a833de184..a3b368f561 100644
--- a/vendor/github.com/creack/pty/pty_linux.go
+++ b/vendor/github.com/creack/pty/pty_linux.go
@@ -1,3 +1,6 @@
+//go:build linux
+// +build linux
+
package pty
import (
@@ -28,7 +31,7 @@ func open() (pty, tty *os.File, err error) {
return nil, nil, err
}
- t, err := os.OpenFile(sname, os.O_RDWR|syscall.O_NOCTTY, 0)
+ t, err := os.OpenFile(sname, os.O_RDWR|syscall.O_NOCTTY, 0) //nolint:gosec // Expected Open from a variable.
if err != nil {
return nil, nil, err
}
@@ -37,7 +40,7 @@ func open() (pty, tty *os.File, err error) {
func ptsname(f *os.File) (string, error) {
var n _C_uint
- err := ioctl(f.Fd(), syscall.TIOCGPTN, uintptr(unsafe.Pointer(&n)))
+ err := ioctl(f.Fd(), syscall.TIOCGPTN, uintptr(unsafe.Pointer(&n))) //nolint:gosec // Expected unsafe pointer for Syscall call.
if err != nil {
return "", err
}
@@ -47,5 +50,5 @@ func ptsname(f *os.File) (string, error) {
func unlockpt(f *os.File) error {
var u _C_int
// use TIOCSPTLCK with a pointer to zero to clear the lock
- return ioctl(f.Fd(), syscall.TIOCSPTLCK, uintptr(unsafe.Pointer(&u)))
+ return ioctl(f.Fd(), syscall.TIOCSPTLCK, uintptr(unsafe.Pointer(&u))) //nolint:gosec // Expected unsafe pointer for Syscall call.
}
diff --git a/vendor/github.com/creack/pty/pty_netbsd.go b/vendor/github.com/creack/pty/pty_netbsd.go
new file mode 100644
index 0000000000..2b20d944c2
--- /dev/null
+++ b/vendor/github.com/creack/pty/pty_netbsd.go
@@ -0,0 +1,69 @@
+//go:build netbsd
+// +build netbsd
+
+package pty
+
+import (
+ "errors"
+ "os"
+ "syscall"
+ "unsafe"
+)
+
+func open() (pty, tty *os.File, err error) {
+ p, err := os.OpenFile("/dev/ptmx", os.O_RDWR, 0)
+ if err != nil {
+ return nil, nil, err
+ }
+ // In case of error after this point, make sure we close the ptmx fd.
+ defer func() {
+ if err != nil {
+ _ = p.Close() // Best effort.
+ }
+ }()
+
+ sname, err := ptsname(p)
+ if err != nil {
+ return nil, nil, err
+ }
+
+ if err := grantpt(p); err != nil {
+ return nil, nil, err
+ }
+
+ // In NetBSD unlockpt() does nothing, so it isn't called here.
+
+ t, err := os.OpenFile(sname, os.O_RDWR|syscall.O_NOCTTY, 0)
+ if err != nil {
+ return nil, nil, err
+ }
+ return p, t, nil
+}
+
+func ptsname(f *os.File) (string, error) {
+ /*
+ * from ptsname(3): The ptsname() function is equivalent to:
+ * struct ptmget pm;
+ * ioctl(fd, TIOCPTSNAME, &pm) == -1 ? NULL : pm.sn;
+ */
+ var ptm ptmget
+ if err := ioctl(f.Fd(), uintptr(ioctl_TIOCPTSNAME), uintptr(unsafe.Pointer(&ptm))); err != nil {
+ return "", err
+ }
+ name := make([]byte, len(ptm.Sn))
+ for i, c := range ptm.Sn {
+ name[i] = byte(c)
+ if c == 0 {
+ return string(name[:i]), nil
+ }
+ }
+ return "", errors.New("TIOCPTSNAME string not NUL-terminated")
+}
+
+func grantpt(f *os.File) error {
+ /*
+ * from grantpt(3): Calling grantpt() is equivalent to:
+ * ioctl(fd, TIOCGRANTPT, 0);
+ */
+ return ioctl(f.Fd(), uintptr(ioctl_TIOCGRANTPT), 0)
+}
diff --git a/vendor/github.com/creack/pty/pty_openbsd.go b/vendor/github.com/creack/pty/pty_openbsd.go
index a6a35d1e67..031367a85b 100644
--- a/vendor/github.com/creack/pty/pty_openbsd.go
+++ b/vendor/github.com/creack/pty/pty_openbsd.go
@@ -1,3 +1,6 @@
+//go:build openbsd
+// +build openbsd
+
package pty
import (
diff --git a/vendor/github.com/creack/pty/pty_solaris.go b/vendor/github.com/creack/pty/pty_solaris.go
index 09ec1b7978..37f933e600 100644
--- a/vendor/github.com/creack/pty/pty_solaris.go
+++ b/vendor/github.com/creack/pty/pty_solaris.go
@@ -1,3 +1,6 @@
+//go:build solaris
+// +build solaris
+
package pty
/* based on:
@@ -6,122 +9,134 @@ http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libc/port/gen/pt.c
import (
"errors"
- "golang.org/x/sys/unix"
"os"
"strconv"
"syscall"
"unsafe"
)
-const NODEV = ^uint64(0)
-
func open() (pty, tty *os.File, err error) {
- masterfd, err := syscall.Open("/dev/ptmx", syscall.O_RDWR|unix.O_NOCTTY, 0)
- //masterfd, err := syscall.Open("/dev/ptmx", syscall.O_RDWR|syscall.O_CLOEXEC|unix.O_NOCTTY, 0)
+ ptmxfd, err := syscall.Open("/dev/ptmx", syscall.O_RDWR|syscall.O_NOCTTY, 0)
if err != nil {
return nil, nil, err
}
- p := os.NewFile(uintptr(masterfd), "/dev/ptmx")
+ p := os.NewFile(uintptr(ptmxfd), "/dev/ptmx")
+ // In case of error after this point, make sure we close the ptmx fd.
+ defer func() {
+ if err != nil {
+ _ = p.Close() // Best effort.
+ }
+ }()
sname, err := ptsname(p)
if err != nil {
return nil, nil, err
}
- err = grantpt(p)
- if err != nil {
+ if err := grantpt(p); err != nil {
return nil, nil, err
}
- err = unlockpt(p)
- if err != nil {
+ if err := unlockpt(p); err != nil {
return nil, nil, err
}
- slavefd, err := syscall.Open(sname, os.O_RDWR|unix.O_NOCTTY, 0)
+ ptsfd, err := syscall.Open(sname, os.O_RDWR|syscall.O_NOCTTY, 0)
if err != nil {
return nil, nil, err
}
- t := os.NewFile(uintptr(slavefd), sname)
+ t := os.NewFile(uintptr(ptsfd), sname)
- // pushing terminal driver STREAMS modules as per pts(7)
- for _, mod := range([]string{"ptem", "ldterm", "ttcompat"}) {
- err = streams_push(t, mod)
+ // In case of error after this point, make sure we close the pts fd.
+ defer func() {
if err != nil {
+ _ = t.Close() // Best effort.
+ }
+ }()
+
+ // pushing terminal driver STREAMS modules as per pts(7)
+ for _, mod := range []string{"ptem", "ldterm", "ttcompat"} {
+ if err := streamsPush(t, mod); err != nil {
return nil, nil, err
}
}
-
- return p, t, nil
-}
-func minor(x uint64) uint64 {
- return x & 0377
+ return p, t, nil
}
-func ptsdev(fd uintptr) uint64 {
- istr := strioctl{ISPTM, 0, 0, nil}
- err := ioctl(fd, I_STR, uintptr(unsafe.Pointer(&istr)))
+func ptsname(f *os.File) (string, error) {
+ dev, err := ptsdev(f.Fd())
if err != nil {
- return NODEV
+ return "", err
}
- var status unix.Stat_t
- err = unix.Fstat(int(fd), &status)
- if err != nil {
- return NODEV
+ fn := "/dev/pts/" + strconv.FormatInt(int64(dev), 10)
+
+ if err := syscall.Access(fn, 0); err != nil {
+ return "", err
}
- return uint64(minor(status.Rdev))
+ return fn, nil
}
-func ptsname(f *os.File) (string, error) {
- dev := ptsdev(f.Fd())
- if dev == NODEV {
- return "", errors.New("not a master pty")
+func unlockpt(f *os.File) error {
+ istr := strioctl{
+ icCmd: UNLKPT,
+ icTimeout: 0,
+ icLen: 0,
+ icDP: nil,
}
- fn := "/dev/pts/" + strconv.FormatInt(int64(dev), 10)
- // access(2) creates the slave device (if the pty exists)
- // F_OK == 0 (unistd.h)
- err := unix.Access(fn, 0)
- if err != nil {
- return "", err
+ return ioctl(f.Fd(), I_STR, uintptr(unsafe.Pointer(&istr)))
+}
+
+func minor(x uint64) uint64 { return x & 0377 }
+
+func ptsdev(fd uintptr) (uint64, error) {
+ istr := strioctl{
+ icCmd: ISPTM,
+ icTimeout: 0,
+ icLen: 0,
+ icDP: nil,
}
- return fn, nil
+
+ if err := ioctl(fd, I_STR, uintptr(unsafe.Pointer(&istr))); err != nil {
+ return 0, err
+ }
+ var status syscall.Stat_t
+ if err := syscall.Fstat(int(fd), &status); err != nil {
+ return 0, err
+ }
+ return uint64(minor(status.Rdev)), nil
}
-type pt_own struct {
- pto_ruid int32
- pto_rgid int32
+type ptOwn struct {
+ rUID int32
+ rGID int32
}
func grantpt(f *os.File) error {
- if ptsdev(f.Fd()) == NODEV {
- return errors.New("not a master pty")
- }
- var pto pt_own
- pto.pto_ruid = int32(os.Getuid())
- // XXX should first attempt to get gid of DEFAULT_TTY_GROUP="tty"
- pto.pto_rgid = int32(os.Getgid())
- var istr strioctl
- istr.ic_cmd = OWNERPT
- istr.ic_timout = 0
- istr.ic_len = int32(unsafe.Sizeof(istr))
- istr.ic_dp = unsafe.Pointer(&pto)
- err := ioctl(f.Fd(), I_STR, uintptr(unsafe.Pointer(&istr)))
- if err != nil {
+ if _, err := ptsdev(f.Fd()); err != nil {
+ return err
+ }
+ pto := ptOwn{
+ rUID: int32(os.Getuid()),
+ // XXX should first attempt to get gid of DEFAULT_TTY_GROUP="tty"
+ rGID: int32(os.Getgid()),
+ }
+ istr := strioctl{
+ icCmd: OWNERPT,
+ icTimeout: 0,
+ icLen: int32(unsafe.Sizeof(strioctl{})),
+ icDP: unsafe.Pointer(&pto),
+ }
+ if err := ioctl(f.Fd(), I_STR, uintptr(unsafe.Pointer(&istr))); err != nil {
return errors.New("access denied")
}
return nil
}
-func unlockpt(f *os.File) error {
- istr := strioctl{UNLKPT, 0, 0, nil}
- return ioctl(f.Fd(), I_STR, uintptr(unsafe.Pointer(&istr)))
-}
-
-// push STREAMS modules if not already done so
-func streams_push(f *os.File, mod string) error {
- var err error
+// streamsPush pushes STREAMS modules if not already done so.
+func streamsPush(f *os.File, mod string) error {
buf := []byte(mod)
+
// XXX I_FIND is not returning an error when the module
// is already pushed even though truss reports a return
// value of 1. A bug in the Go Solaris syscall interface?
@@ -129,11 +144,9 @@ func streams_push(f *os.File, mod string) error {
// https://www.illumos.org/issues/9042
// but since we are not using libc or XPG4.2, we should not be
// double-pushing modules
-
- err = ioctl(f.Fd(), I_FIND, uintptr(unsafe.Pointer(&buf[0])))
- if err != nil {
+
+ if err := ioctl(f.Fd(), I_FIND, uintptr(unsafe.Pointer(&buf[0]))); err != nil {
return nil
}
- err = ioctl(f.Fd(), I_PUSH, uintptr(unsafe.Pointer(&buf[0])))
- return err
+ return ioctl(f.Fd(), I_PUSH, uintptr(unsafe.Pointer(&buf[0])))
}
diff --git a/vendor/github.com/creack/pty/pty_unsupported.go b/vendor/github.com/creack/pty/pty_unsupported.go
index ceb425b19c..c771020fae 100644
--- a/vendor/github.com/creack/pty/pty_unsupported.go
+++ b/vendor/github.com/creack/pty/pty_unsupported.go
@@ -1,4 +1,5 @@
-// +build !linux,!darwin,!freebsd,!dragonfly,!openbsd,!solaris
+//go:build !linux && !darwin && !freebsd && !dragonfly && !netbsd && !openbsd && !solaris
+// +build !linux,!darwin,!freebsd,!dragonfly,!netbsd,!openbsd,!solaris
package pty
diff --git a/vendor/github.com/creack/pty/run.go b/vendor/github.com/creack/pty/run.go
index b07942514d..4755366200 100644
--- a/vendor/github.com/creack/pty/run.go
+++ b/vendor/github.com/creack/pty/run.go
@@ -1,5 +1,3 @@
-// +build !windows
-
package pty
import (
@@ -13,23 +11,8 @@ import (
// corresponding pty.
//
// Starts the process in a new session and sets the controlling terminal.
-func Start(c *exec.Cmd) (pty *os.File, err error) {
- return StartWithSize(c, nil)
-}
-
-// StartWithSize assigns a pseudo-terminal tty os.File to c.Stdin, c.Stdout,
-// and c.Stderr, calls c.Start, and returns the File of the tty's
-// corresponding pty.
-//
-// This will resize the pty to the specified size before starting the command.
-// Starts the process in a new session and sets the controlling terminal.
-func StartWithSize(c *exec.Cmd, sz *Winsize) (pty *os.File, err error) {
- if c.SysProcAttr == nil {
- c.SysProcAttr = &syscall.SysProcAttr{}
- }
- c.SysProcAttr.Setsid = true
- c.SysProcAttr.Setctty = true
- return StartWithAttrs(c, sz, c.SysProcAttr)
+func Start(cmd *exec.Cmd) (*os.File, error) {
+ return StartWithSize(cmd, nil)
}
// StartWithAttrs assigns a pseudo-terminal tty os.File to c.Stdin, c.Stdout,
@@ -41,16 +24,16 @@ func StartWithSize(c *exec.Cmd, sz *Winsize) (pty *os.File, err error) {
//
// This should generally not be needed. Used in some edge cases where it is needed to create a pty
// without a controlling terminal.
-func StartWithAttrs(c *exec.Cmd, sz *Winsize, attrs *syscall.SysProcAttr) (pty *os.File, err error) {
+func StartWithAttrs(c *exec.Cmd, sz *Winsize, attrs *syscall.SysProcAttr) (*os.File, error) {
pty, tty, err := Open()
if err != nil {
return nil, err
}
- defer tty.Close()
+ defer func() { _ = tty.Close() }() // Best effort.
if sz != nil {
if err := Setsize(pty, sz); err != nil {
- pty.Close()
+ _ = pty.Close() // Best effort.
return nil, err
}
}
@@ -67,7 +50,7 @@ func StartWithAttrs(c *exec.Cmd, sz *Winsize, attrs *syscall.SysProcAttr) (pty *
c.SysProcAttr = attrs
if err := c.Start(); err != nil {
- _ = pty.Close()
+ _ = pty.Close() // Best effort.
return nil, err
}
return pty, err
diff --git a/vendor/github.com/creack/pty/start.go b/vendor/github.com/creack/pty/start.go
new file mode 100644
index 0000000000..9b51635f5e
--- /dev/null
+++ b/vendor/github.com/creack/pty/start.go
@@ -0,0 +1,25 @@
+//go:build !windows
+// +build !windows
+
+package pty
+
+import (
+ "os"
+ "os/exec"
+ "syscall"
+)
+
+// StartWithSize assigns a pseudo-terminal tty os.File to c.Stdin, c.Stdout,
+// and c.Stderr, calls c.Start, and returns the File of the tty's
+// corresponding pty.
+//
+// This will resize the pty to the specified size before starting the command.
+// Starts the process in a new session and sets the controlling terminal.
+func StartWithSize(cmd *exec.Cmd, ws *Winsize) (*os.File, error) {
+ if cmd.SysProcAttr == nil {
+ cmd.SysProcAttr = &syscall.SysProcAttr{}
+ }
+ cmd.SysProcAttr.Setsid = true
+ cmd.SysProcAttr.Setctty = true
+ return StartWithAttrs(cmd, ws, cmd.SysProcAttr)
+}
diff --git a/vendor/github.com/creack/pty/start_windows.go b/vendor/github.com/creack/pty/start_windows.go
new file mode 100644
index 0000000000..7e9530ba03
--- /dev/null
+++ b/vendor/github.com/creack/pty/start_windows.go
@@ -0,0 +1,19 @@
+//go:build windows
+// +build windows
+
+package pty
+
+import (
+ "os"
+ "os/exec"
+)
+
+// StartWithSize assigns a pseudo-terminal tty os.File to c.Stdin, c.Stdout,
+// and c.Stderr, calls c.Start, and returns the File of the tty's
+// corresponding pty.
+//
+// This will resize the pty to the specified size before starting the command.
+// Starts the process in a new session and sets the controlling terminal.
+func StartWithSize(cmd *exec.Cmd, ws *Winsize) (*os.File, error) {
+ return nil, ErrUnsupported
+}
diff --git a/vendor/github.com/creack/pty/test_crosscompile.sh b/vendor/github.com/creack/pty/test_crosscompile.sh
index c4b9e3734c..47e8b10643 100644
--- a/vendor/github.com/creack/pty/test_crosscompile.sh
+++ b/vendor/github.com/creack/pty/test_crosscompile.sh
@@ -4,31 +4,31 @@
# Does not actually test the logic, just the compilation so we make sure we don't break code depending on the lib.
echo2() {
- echo $@ >&2
+ echo $@ >&2
}
trap end 0
end() {
- [ "$?" = 0 ] && echo2 "Pass." || (echo2 "Fail."; exit 1)
+ [ "$?" = 0 ] && echo2 "Pass." || (echo2 "Fail."; exit 1)
}
cross() {
- os=$1
- shift
- echo2 "Build for $os."
- for arch in $@; do
- echo2 " - $os/$arch"
- GOOS=$os GOARCH=$arch go build
- done
- echo2
+ os=$1
+ shift
+ echo2 "Build for $os."
+ for arch in $@; do
+ echo2 " - $os/$arch"
+ GOOS=$os GOARCH=$arch go build
+ done
+ echo2
}
set -e
cross linux amd64 386 arm arm64 ppc64 ppc64le s390x mips mipsle mips64 mips64le
-cross darwin amd64 386 arm arm64
-cross freebsd amd64 386 arm
-cross netbsd amd64 386 arm
+cross darwin amd64 arm64
+cross freebsd amd64 386 arm arm64
+cross netbsd amd64 386 arm arm64
cross openbsd amd64 386 arm arm64
cross dragonfly amd64
cross solaris amd64
@@ -41,10 +41,24 @@ cross windows amd64 386 arm
# Some os/arch require a different compiler. Run in docker.
if ! hash docker; then
- # If docker is not present, stop here.
- return
+ # If docker is not present, stop here.
+ return
fi
echo2 "Build for linux."
echo2 " - linux/riscv"
-docker build -t test -f Dockerfile.riscv .
+docker build -t creack-pty-test -f Dockerfile.riscv .
+
+# Golang dropped support for darwin 32bits since go1.15. Make sure the lib still compile with go1.14 on those archs.
+echo2 "Build for darwin (32bits)."
+echo2 " - darwin/386"
+docker build -t creack-pty-test -f Dockerfile.golang --build-arg=GOVERSION=1.14 --build-arg=GOOS=darwin --build-arg=GOARCH=386 .
+echo2 " - darwin/arm"
+docker build -t creack-pty-test -f Dockerfile.golang --build-arg=GOVERSION=1.14 --build-arg=GOOS=darwin --build-arg=GOARCH=arm .
+
+# Run a single test for an old go version. Would be best with go1.0, but not available on Dockerhub.
+# Using 1.6 as it is the base version for the RISCV compiler.
+# Would also be better to run all the tests, not just one, need to refactor this file to allow for specifc archs per version.
+echo2 "Build for linux - go1.6."
+echo2 " - linux/amd64"
+docker build -t creack-pty-test -f Dockerfile.golang --build-arg=GOVERSION=1.6 --build-arg=GOOS=linux --build-arg=GOARCH=amd64 .
diff --git a/vendor/github.com/creack/pty/util.go b/vendor/github.com/creack/pty/util.go
deleted file mode 100644
index 8fdde0bab9..0000000000
--- a/vendor/github.com/creack/pty/util.go
+++ /dev/null
@@ -1,64 +0,0 @@
-// +build !windows,!solaris
-
-package pty
-
-import (
- "os"
- "syscall"
- "unsafe"
-)
-
-// InheritSize applies the terminal size of pty to tty. This should be run
-// in a signal handler for syscall.SIGWINCH to automatically resize the tty when
-// the pty receives a window size change notification.
-func InheritSize(pty, tty *os.File) error {
- size, err := GetsizeFull(pty)
- if err != nil {
- return err
- }
- err = Setsize(tty, size)
- if err != nil {
- return err
- }
- return nil
-}
-
-// Setsize resizes t to s.
-func Setsize(t *os.File, ws *Winsize) error {
- return windowRectCall(ws, t.Fd(), syscall.TIOCSWINSZ)
-}
-
-// GetsizeFull returns the full terminal size description.
-func GetsizeFull(t *os.File) (size *Winsize, err error) {
- var ws Winsize
- err = windowRectCall(&ws, t.Fd(), syscall.TIOCGWINSZ)
- return &ws, err
-}
-
-// Getsize returns the number of rows (lines) and cols (positions
-// in each line) in terminal t.
-func Getsize(t *os.File) (rows, cols int, err error) {
- ws, err := GetsizeFull(t)
- return int(ws.Rows), int(ws.Cols), err
-}
-
-// Winsize describes the terminal size.
-type Winsize struct {
- Rows uint16 // ws_row: Number of rows (in cells)
- Cols uint16 // ws_col: Number of columns (in cells)
- X uint16 // ws_xpixel: Width in pixels
- Y uint16 // ws_ypixel: Height in pixels
-}
-
-func windowRectCall(ws *Winsize, fd, a2 uintptr) error {
- _, _, errno := syscall.Syscall(
- syscall.SYS_IOCTL,
- fd,
- a2,
- uintptr(unsafe.Pointer(ws)),
- )
- if errno != 0 {
- return syscall.Errno(errno)
- }
- return nil
-}
diff --git a/vendor/github.com/creack/pty/util_solaris.go b/vendor/github.com/creack/pty/util_solaris.go
deleted file mode 100644
index e889692482..0000000000
--- a/vendor/github.com/creack/pty/util_solaris.go
+++ /dev/null
@@ -1,51 +0,0 @@
-//
-
-package pty
-
-import (
- "os"
- "golang.org/x/sys/unix"
-)
-
-const (
- TIOCGWINSZ = 21608 // 'T' << 8 | 104
- TIOCSWINSZ = 21607 // 'T' << 8 | 103
-)
-
-// Winsize describes the terminal size.
-type Winsize struct {
- Rows uint16 // ws_row: Number of rows (in cells)
- Cols uint16 // ws_col: Number of columns (in cells)
- X uint16 // ws_xpixel: Width in pixels
- Y uint16 // ws_ypixel: Height in pixels
-}
-
-// GetsizeFull returns the full terminal size description.
-func GetsizeFull(t *os.File) (size *Winsize, err error) {
- var wsz *unix.Winsize
- wsz, err = unix.IoctlGetWinsize(int(t.Fd()), TIOCGWINSZ)
-
- if err != nil {
- return nil, err
- } else {
- return &Winsize{wsz.Row, wsz.Col, wsz.Xpixel, wsz.Ypixel}, nil
- }
-}
-
-// Get Windows Size
-func Getsize(t *os.File) (rows, cols int, err error) {
- var wsz *unix.Winsize
- wsz, err = unix.IoctlGetWinsize(int(t.Fd()), TIOCGWINSZ)
-
- if err != nil {
- return 80, 25, err
- } else {
- return int(wsz.Row), int(wsz.Col), nil
- }
-}
-
-// Setsize resizes t to s.
-func Setsize(t *os.File, ws *Winsize) error {
- wsz := unix.Winsize{ws.Rows, ws.Cols, ws.X, ws.Y}
- return unix.IoctlSetWinsize(int(t.Fd()), TIOCSWINSZ, &wsz)
-}
diff --git a/vendor/github.com/creack/pty/winsize.go b/vendor/github.com/creack/pty/winsize.go
new file mode 100644
index 0000000000..57323f40ab
--- /dev/null
+++ b/vendor/github.com/creack/pty/winsize.go
@@ -0,0 +1,27 @@
+package pty
+
+import "os"
+
+// InheritSize applies the terminal size of pty to tty. This should be run
+// in a signal handler for syscall.SIGWINCH to automatically resize the tty when
+// the pty receives a window size change notification.
+func InheritSize(pty, tty *os.File) error {
+ size, err := GetsizeFull(pty)
+ if err != nil {
+ return err
+ }
+ if err := Setsize(tty, size); err != nil {
+ return err
+ }
+ return nil
+}
+
+// Getsize returns the number of rows (lines) and cols (positions
+// in each line) in terminal t.
+func Getsize(t *os.File) (rows, cols int, err error) {
+ ws, err := GetsizeFull(t)
+ if err != nil {
+ return 0, 0, err
+ }
+ return int(ws.Rows), int(ws.Cols), nil
+}
diff --git a/vendor/github.com/creack/pty/winsize_unix.go b/vendor/github.com/creack/pty/winsize_unix.go
new file mode 100644
index 0000000000..5d99c3dd9d
--- /dev/null
+++ b/vendor/github.com/creack/pty/winsize_unix.go
@@ -0,0 +1,35 @@
+//go:build !windows
+// +build !windows
+
+package pty
+
+import (
+ "os"
+ "syscall"
+ "unsafe"
+)
+
+// Winsize describes the terminal size.
+type Winsize struct {
+ Rows uint16 // ws_row: Number of rows (in cells)
+ Cols uint16 // ws_col: Number of columns (in cells)
+ X uint16 // ws_xpixel: Width in pixels
+ Y uint16 // ws_ypixel: Height in pixels
+}
+
+// Setsize resizes t to s.
+func Setsize(t *os.File, ws *Winsize) error {
+ //nolint:gosec // Expected unsafe pointer for Syscall call.
+ return ioctl(t.Fd(), syscall.TIOCSWINSZ, uintptr(unsafe.Pointer(ws)))
+}
+
+// GetsizeFull returns the full terminal size description.
+func GetsizeFull(t *os.File) (size *Winsize, err error) {
+ var ws Winsize
+
+ //nolint:gosec // Expected unsafe pointer for Syscall call.
+ if err := ioctl(t.Fd(), syscall.TIOCGWINSZ, uintptr(unsafe.Pointer(&ws))); err != nil {
+ return nil, err
+ }
+ return &ws, nil
+}
diff --git a/vendor/github.com/creack/pty/winsize_unsupported.go b/vendor/github.com/creack/pty/winsize_unsupported.go
new file mode 100644
index 0000000000..0d2109938a
--- /dev/null
+++ b/vendor/github.com/creack/pty/winsize_unsupported.go
@@ -0,0 +1,23 @@
+//go:build windows
+// +build windows
+
+package pty
+
+import (
+ "os"
+)
+
+// Winsize is a dummy struct to enable compilation on unsupported platforms.
+type Winsize struct {
+ Rows, Cols, X, Y uint16
+}
+
+// Setsize resizes t to s.
+func Setsize(*os.File, *Winsize) error {
+ return ErrUnsupported
+}
+
+// GetsizeFull returns the full terminal size description.
+func GetsizeFull(*os.File) (*Winsize, error) {
+ return nil, ErrUnsupported
+}
diff --git a/vendor/github.com/creack/pty/ztypes_386.go b/vendor/github.com/creack/pty/ztypes_386.go
index ff0b8fd838..d126f4aa58 100644
--- a/vendor/github.com/creack/pty/ztypes_386.go
+++ b/vendor/github.com/creack/pty/ztypes_386.go
@@ -1,3 +1,6 @@
+//go:build 386
+// +build 386
+
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types.go
diff --git a/vendor/github.com/creack/pty/ztypes_amd64.go b/vendor/github.com/creack/pty/ztypes_amd64.go
index ff0b8fd838..6c4a7677fc 100644
--- a/vendor/github.com/creack/pty/ztypes_amd64.go
+++ b/vendor/github.com/creack/pty/ztypes_amd64.go
@@ -1,3 +1,6 @@
+//go:build amd64
+// +build amd64
+
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types.go
diff --git a/vendor/github.com/creack/pty/ztypes_arm.go b/vendor/github.com/creack/pty/ztypes_arm.go
index ff0b8fd838..de6fe160ea 100644
--- a/vendor/github.com/creack/pty/ztypes_arm.go
+++ b/vendor/github.com/creack/pty/ztypes_arm.go
@@ -1,3 +1,6 @@
+//go:build arm
+// +build arm
+
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types.go
diff --git a/vendor/github.com/creack/pty/ztypes_arm64.go b/vendor/github.com/creack/pty/ztypes_arm64.go
index 6c29a4b918..c4f315cac1 100644
--- a/vendor/github.com/creack/pty/ztypes_arm64.go
+++ b/vendor/github.com/creack/pty/ztypes_arm64.go
@@ -1,8 +1,9 @@
+//go:build arm64
+// +build arm64
+
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types.go
-// +build arm64
-
package pty
type (
diff --git a/vendor/github.com/creack/pty/ztypes_dragonfly_amd64.go b/vendor/github.com/creack/pty/ztypes_dragonfly_amd64.go
index 6b0ba037f8..183c421471 100644
--- a/vendor/github.com/creack/pty/ztypes_dragonfly_amd64.go
+++ b/vendor/github.com/creack/pty/ztypes_dragonfly_amd64.go
@@ -1,3 +1,6 @@
+//go:build amd64 && dragonfly
+// +build amd64,dragonfly
+
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types_dragonfly.go
diff --git a/vendor/github.com/creack/pty/ztypes_freebsd_386.go b/vendor/github.com/creack/pty/ztypes_freebsd_386.go
index d9975374e3..d80dbf7172 100644
--- a/vendor/github.com/creack/pty/ztypes_freebsd_386.go
+++ b/vendor/github.com/creack/pty/ztypes_freebsd_386.go
@@ -1,3 +1,6 @@
+//go:build 386 && freebsd
+// +build 386,freebsd
+
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types_freebsd.go
diff --git a/vendor/github.com/creack/pty/ztypes_freebsd_amd64.go b/vendor/github.com/creack/pty/ztypes_freebsd_amd64.go
index 5fa102fcdf..bfab4e4582 100644
--- a/vendor/github.com/creack/pty/ztypes_freebsd_amd64.go
+++ b/vendor/github.com/creack/pty/ztypes_freebsd_amd64.go
@@ -1,3 +1,6 @@
+//go:build amd64 && freebsd
+// +build amd64,freebsd
+
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types_freebsd.go
diff --git a/vendor/github.com/creack/pty/ztypes_freebsd_arm.go b/vendor/github.com/creack/pty/ztypes_freebsd_arm.go
index d9975374e3..3a8aeae371 100644
--- a/vendor/github.com/creack/pty/ztypes_freebsd_arm.go
+++ b/vendor/github.com/creack/pty/ztypes_freebsd_arm.go
@@ -1,3 +1,6 @@
+//go:build arm && freebsd
+// +build arm,freebsd
+
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types_freebsd.go
diff --git a/vendor/github.com/creack/pty/ztypes_freebsd_arm64.go b/vendor/github.com/creack/pty/ztypes_freebsd_arm64.go
index 4418139b26..a83924918a 100644
--- a/vendor/github.com/creack/pty/ztypes_freebsd_arm64.go
+++ b/vendor/github.com/creack/pty/ztypes_freebsd_arm64.go
@@ -1,3 +1,6 @@
+//go:build arm64 && freebsd
+// +build arm64,freebsd
+
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs types_freebsd.go
diff --git a/vendor/github.com/creack/pty/ztypes_freebsd_ppc64.go b/vendor/github.com/creack/pty/ztypes_freebsd_ppc64.go
new file mode 100644
index 0000000000..5fa102fcdf
--- /dev/null
+++ b/vendor/github.com/creack/pty/ztypes_freebsd_ppc64.go
@@ -0,0 +1,14 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_freebsd.go
+
+package pty
+
+const (
+ _C_SPECNAMELEN = 0x3f
+)
+
+type fiodgnameArg struct {
+ Len int32
+ Pad_cgo_0 [4]byte
+ Buf *byte
+}
diff --git a/vendor/github.com/creack/pty/ztypes_loong64.go b/vendor/github.com/creack/pty/ztypes_loong64.go
new file mode 100644
index 0000000000..3beb5c1762
--- /dev/null
+++ b/vendor/github.com/creack/pty/ztypes_loong64.go
@@ -0,0 +1,12 @@
+//go:build loong64
+// +build loong64
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types.go
+
+package pty
+
+type (
+ _C_int int32
+ _C_uint uint32
+)
diff --git a/vendor/github.com/creack/pty/ztypes_mipsx.go b/vendor/github.com/creack/pty/ztypes_mipsx.go
index f0ce74086a..281277977e 100644
--- a/vendor/github.com/creack/pty/ztypes_mipsx.go
+++ b/vendor/github.com/creack/pty/ztypes_mipsx.go
@@ -1,9 +1,10 @@
+//go:build (mips || mipsle || mips64 || mips64le) && linux
+// +build mips mipsle mips64 mips64le
+// +build linux
+
// Created by cgo -godefs - DO NOT EDIT
// cgo -godefs types.go
-// +build linux
-// +build mips mipsle mips64 mips64le
-
package pty
type (
diff --git a/vendor/github.com/creack/pty/ztypes_netbsd_32bit_int.go b/vendor/github.com/creack/pty/ztypes_netbsd_32bit_int.go
new file mode 100644
index 0000000000..2ab7c45598
--- /dev/null
+++ b/vendor/github.com/creack/pty/ztypes_netbsd_32bit_int.go
@@ -0,0 +1,17 @@
+//go:build (386 || amd64 || arm || arm64) && netbsd
+// +build 386 amd64 arm arm64
+// +build netbsd
+
+package pty
+
+type ptmget struct {
+ Cfd int32
+ Sfd int32
+ Cn [1024]int8
+ Sn [1024]int8
+}
+
+var (
+ ioctl_TIOCPTSNAME = 0x48087448
+ ioctl_TIOCGRANTPT = 0x20007447
+)
diff --git a/vendor/github.com/creack/pty/ztypes_openbsd_32bit_int.go b/vendor/github.com/creack/pty/ztypes_openbsd_32bit_int.go
index d7cab4a2ab..1eb0948167 100644
--- a/vendor/github.com/creack/pty/ztypes_openbsd_32bit_int.go
+++ b/vendor/github.com/creack/pty/ztypes_openbsd_32bit_int.go
@@ -1,13 +1,14 @@
+//go:build (386 || amd64 || arm || arm64 || mips64) && openbsd
+// +build 386 amd64 arm arm64 mips64
// +build openbsd
-// +build 386 amd64 arm arm64
package pty
type ptmget struct {
- Cfd int32
- Sfd int32
- Cn [16]int8
- Sn [16]int8
+ Cfd int32
+ Sfd int32
+ Cn [16]int8
+ Sn [16]int8
}
var ioctl_PTMGET = 0x40287401
diff --git a/vendor/github.com/creack/pty/ztypes_ppc64.go b/vendor/github.com/creack/pty/ztypes_ppc64.go
index 4e1af84312..bbb3da8322 100644
--- a/vendor/github.com/creack/pty/ztypes_ppc64.go
+++ b/vendor/github.com/creack/pty/ztypes_ppc64.go
@@ -1,3 +1,4 @@
+//go:build ppc64
// +build ppc64
// Created by cgo -godefs - DO NOT EDIT
diff --git a/vendor/github.com/creack/pty/ztypes_ppc64le.go b/vendor/github.com/creack/pty/ztypes_ppc64le.go
index e6780f4e23..8a4fac3e92 100644
--- a/vendor/github.com/creack/pty/ztypes_ppc64le.go
+++ b/vendor/github.com/creack/pty/ztypes_ppc64le.go
@@ -1,3 +1,4 @@
+//go:build ppc64le
// +build ppc64le
// Created by cgo -godefs - DO NOT EDIT
diff --git a/vendor/github.com/creack/pty/ztypes_riscvx.go b/vendor/github.com/creack/pty/ztypes_riscvx.go
index 99eec8ecbe..dc5da90506 100644
--- a/vendor/github.com/creack/pty/ztypes_riscvx.go
+++ b/vendor/github.com/creack/pty/ztypes_riscvx.go
@@ -1,8 +1,9 @@
+//go:build riscv || riscv64
+// +build riscv riscv64
+
// Code generated by cmd/cgo -godefs; DO NOT EDIT.
// cgo -godefs types.go
-// +build riscv riscv64
-
package pty
type (
diff --git a/vendor/github.com/creack/pty/ztypes_s390x.go b/vendor/github.com/creack/pty/ztypes_s390x.go
index a7452b61cb..3433be7ca0 100644
--- a/vendor/github.com/creack/pty/ztypes_s390x.go
+++ b/vendor/github.com/creack/pty/ztypes_s390x.go
@@ -1,3 +1,4 @@
+//go:build s390x
// +build s390x
// Created by cgo -godefs - DO NOT EDIT
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 36ba40a0c4..549c04a4d9 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -350,7 +350,7 @@ github.com/coreos/go-systemd/v22/activation
github.com/coreos/go-systemd/v22/daemon
github.com/coreos/go-systemd/v22/dbus
github.com/coreos/go-systemd/v22/journal
-# github.com/creack/pty v1.1.11
+# github.com/creack/pty v1.1.18
## explicit; go 1.13
github.com/creack/pty
# github.com/cyphar/filepath-securejoin v0.2.3