From 2af6db672e14a5fd54fedbcebc4e63ae55f27a2f Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 9 Nov 2022 12:39:20 +0100 Subject: [PATCH] switch back from golang.org/x/sys/execabs to os/exec (go1.19) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is effectively a revert of 2ac996840187b2e42fdbe4e4c9b6b55a7c775c43, which switched from os/exec to the golang.org/x/sys/execabs package to mitigate security issues (mainly on Windows) with lookups resolving to binaries in the current directory. from the go1.19 release notes https://go.dev/doc/go1.19#os-exec-path > ## PATH lookups > > Command and LookPath no longer allow results from a PATH search to be found > relative to the current directory. This removes a common source of security > problems but may also break existing programs that depend on using, say, > exec.Command("prog") to run a binary named prog (or, on Windows, prog.exe) in > the current directory. See the os/exec package documentation for information > about how best to update such programs. > > On Windows, Command and LookPath now respect the NoDefaultCurrentDirectoryInExePath > environment variable, making it possible to disable the default implicit search > of “.” in PATH lookups on Windows systems. Signed-off-by: Sebastiaan van Stijn --- archive/compression/compression.go | 2 +- archive/compression/compression_test.go | 3 +-- archive/tar_test.go | 2 +- cmd/containerd/command/service_windows.go | 2 +- cmd/ctr/commands/content/content.go | 2 +- contrib/apparmor/template.go | 3 +-- contrib/nvidia/nvidia.go | 2 +- diff/stream_unix.go | 2 +- diff/stream_windows.go | 2 +- integration/client/client_test.go | 2 +- integration/client/container_fuzzer.go | 2 +- integration/client/container_linux_test.go | 2 +- integration/client/container_test.go | 2 +- integration/client/daemon.go | 2 +- integration/client/restart_monitor_test.go | 2 +- integration/image_load_test.go | 2 +- integration/issue7496_linux_test.go | 2 +- integration/main_test.go | 2 +- integration/pod_userns_linux_test.go | 2 +- integration/volume_copy_up_unix_test.go | 3 +-- mount/lookup_linux_test.go | 2 +- mount/mount_freebsd.go | 2 +- mount/mount_linux.go | 3 +-- mount/mount_linux_test.go | 2 +- pkg/process/io.go | 2 +- pkg/process/io_util.go | 3 +-- runtime/v2/runc/manager/manager_linux.go | 2 +- runtime/v2/shim/util.go | 2 +- snapshots/btrfs/btrfs_test.go | 14 ++++++-------- snapshots/devmapper/blkdiscard/blkdiscard.go | 2 +- snapshots/devmapper/dmsetup/dmsetup.go | 2 +- snapshots/devmapper/pool_device_test.go | 2 +- snapshots/devmapper/snapshotter.go | 2 +- snapshots/overlay/overlayutils/check_test.go | 2 +- sys/oom_linux_test.go | 2 +- sys/reaper/reaper_unix.go | 2 +- 36 files changed, 41 insertions(+), 48 deletions(-) diff --git a/archive/compression/compression.go b/archive/compression/compression.go index 0caf710ae..e5c0a18b9 100644 --- a/archive/compression/compression.go +++ b/archive/compression/compression.go @@ -25,12 +25,12 @@ import ( "fmt" "io" "os" + "os/exec" "strconv" "sync" "github.com/containerd/log" "github.com/klauspost/compress/zstd" - exec "golang.org/x/sys/execabs" ) type ( diff --git a/archive/compression/compression_test.go b/archive/compression/compression_test.go index 4f89487ca..64f61b4a5 100644 --- a/archive/compression/compression_test.go +++ b/archive/compression/compression_test.go @@ -23,12 +23,11 @@ import ( "crypto/rand" "io" "os" + "os/exec" "path/filepath" "runtime" "strings" "testing" - - exec "golang.org/x/sys/execabs" ) func TestMain(m *testing.M) { diff --git a/archive/tar_test.go b/archive/tar_test.go index 302db1485..7598da88d 100644 --- a/archive/tar_test.go +++ b/archive/tar_test.go @@ -27,6 +27,7 @@ import ( "fmt" "io" "os" + "os/exec" "path/filepath" "runtime" "testing" @@ -38,7 +39,6 @@ import ( "github.com/containerd/continuity/fs/fstest" "github.com/opencontainers/go-digest" "github.com/stretchr/testify/require" - exec "golang.org/x/sys/execabs" ) const tarCmd = "tar" diff --git a/cmd/containerd/command/service_windows.go b/cmd/containerd/command/service_windows.go index f3e18683c..f3f206435 100644 --- a/cmd/containerd/command/service_windows.go +++ b/cmd/containerd/command/service_windows.go @@ -20,6 +20,7 @@ import ( "fmt" "log" "os" + "os/exec" "path/filepath" "time" @@ -27,7 +28,6 @@ import ( "github.com/containerd/containerd/v2/services/server" "github.com/sirupsen/logrus" "github.com/urfave/cli" - exec "golang.org/x/sys/execabs" "golang.org/x/sys/windows" "golang.org/x/sys/windows/svc" "golang.org/x/sys/windows/svc/debug" diff --git a/cmd/ctr/commands/content/content.go b/cmd/ctr/commands/content/content.go index e5e0bc428..41c71c9b0 100644 --- a/cmd/ctr/commands/content/content.go +++ b/cmd/ctr/commands/content/content.go @@ -21,6 +21,7 @@ import ( "fmt" "io" "os" + "os/exec" "sort" "strings" "text/tabwriter" @@ -35,7 +36,6 @@ import ( digest "github.com/opencontainers/go-digest" ocispec "github.com/opencontainers/image-spec/specs-go/v1" "github.com/urfave/cli" - exec "golang.org/x/sys/execabs" ) var ( diff --git a/contrib/apparmor/template.go b/contrib/apparmor/template.go index 20ac3c9bf..dd4d9133d 100644 --- a/contrib/apparmor/template.go +++ b/contrib/apparmor/template.go @@ -25,11 +25,10 @@ import ( "fmt" "io" "os" + "os/exec" "path" "strings" "text/template" - - exec "golang.org/x/sys/execabs" ) // NOTE: This code is copied from . diff --git a/contrib/nvidia/nvidia.go b/contrib/nvidia/nvidia.go index 33a6bc34a..56634098b 100644 --- a/contrib/nvidia/nvidia.go +++ b/contrib/nvidia/nvidia.go @@ -20,13 +20,13 @@ import ( "context" "fmt" "os" + "os/exec" "strconv" "strings" "github.com/containerd/containerd/v2/containers" "github.com/containerd/containerd/v2/oci" specs "github.com/opencontainers/runtime-spec/specs-go" - exec "golang.org/x/sys/execabs" ) // NvidiaCLI is the path to the Nvidia helper binary diff --git a/diff/stream_unix.go b/diff/stream_unix.go index 4ff795c2c..fafbfa120 100644 --- a/diff/stream_unix.go +++ b/diff/stream_unix.go @@ -25,12 +25,12 @@ import ( "fmt" "io" "os" + "os/exec" "sync" "github.com/containerd/containerd/v2/protobuf" "github.com/containerd/containerd/v2/protobuf/proto" "github.com/containerd/typeurl/v2" - exec "golang.org/x/sys/execabs" ) // NewBinaryProcessor returns a binary processor for use with processing content streams diff --git a/diff/stream_windows.go b/diff/stream_windows.go index f69ccf135..9bf09d7d4 100644 --- a/diff/stream_windows.go +++ b/diff/stream_windows.go @@ -23,11 +23,11 @@ import ( "fmt" "io" "os" + "os/exec" "path/filepath" "sync" "github.com/Microsoft/go-winio" - exec "golang.org/x/sys/execabs" "github.com/containerd/containerd/v2/protobuf" "github.com/containerd/containerd/v2/protobuf/proto" diff --git a/integration/client/client_test.go b/integration/client/client_test.go index 690f18c4c..06eed9654 100644 --- a/integration/client/client_test.go +++ b/integration/client/client_test.go @@ -23,6 +23,7 @@ import ( "fmt" "io" "os" + "os/exec" "testing" "time" @@ -30,7 +31,6 @@ import ( "github.com/opencontainers/image-spec/identity" "github.com/stretchr/testify/require" "go.opentelemetry.io/otel" - exec "golang.org/x/sys/execabs" . "github.com/containerd/containerd/v2/client" "github.com/containerd/containerd/v2/defaults" diff --git a/integration/client/container_fuzzer.go b/integration/client/container_fuzzer.go index 006cb9f6d..14ec0d99f 100644 --- a/integration/client/container_fuzzer.go +++ b/integration/client/container_fuzzer.go @@ -26,13 +26,13 @@ import ( "io" "net/http" "os" + "os/exec" "strings" "time" fuzz "github.com/AdaLogics/go-fuzz-headers" containerd "github.com/containerd/containerd/v2/client" "github.com/containerd/containerd/v2/oci" - exec "golang.org/x/sys/execabs" ) var ( diff --git a/integration/client/container_linux_test.go b/integration/client/container_linux_test.go index eda555bd7..d6e506715 100644 --- a/integration/client/container_linux_test.go +++ b/integration/client/container_linux_test.go @@ -22,6 +22,7 @@ import ( "fmt" "io" "os" + "os/exec" "path/filepath" "runtime" "strings" @@ -44,7 +45,6 @@ import ( "github.com/opencontainers/runtime-spec/specs-go" "github.com/stretchr/testify/require" - exec "golang.org/x/sys/execabs" "golang.org/x/sys/unix" ) diff --git a/integration/client/container_test.go b/integration/client/container_test.go index 6fbdc61fb..ba41e0485 100644 --- a/integration/client/container_test.go +++ b/integration/client/container_test.go @@ -22,6 +22,7 @@ import ( "fmt" "io" "os" + "os/exec" "path" "path/filepath" "runtime" @@ -49,7 +50,6 @@ import ( "github.com/containerd/typeurl/v2" specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/stretchr/testify/require" - exec "golang.org/x/sys/execabs" ) func empty() cio.Creator { diff --git a/integration/client/daemon.go b/integration/client/daemon.go index 41e54c8e6..1843eb8a6 100644 --- a/integration/client/daemon.go +++ b/integration/client/daemon.go @@ -21,13 +21,13 @@ import ( "errors" "fmt" "io" + "os/exec" "runtime" "sync" "syscall" "time" . "github.com/containerd/containerd/v2/client" - exec "golang.org/x/sys/execabs" ) type daemon struct { diff --git a/integration/client/restart_monitor_test.go b/integration/client/restart_monitor_test.go index ad3bf0ac4..ae33b7d90 100644 --- a/integration/client/restart_monitor_test.go +++ b/integration/client/restart_monitor_test.go @@ -22,6 +22,7 @@ import ( "errors" "fmt" "os" + "os/exec" "path/filepath" "runtime" "strconv" @@ -38,7 +39,6 @@ import ( srvconfig "github.com/containerd/containerd/v2/services/server/config" "github.com/containerd/typeurl/v2" "github.com/stretchr/testify/require" - exec "golang.org/x/sys/execabs" ) func newDaemonWithConfig(t *testing.T, configTOML string) (*Client, *daemon, func()) { diff --git a/integration/image_load_test.go b/integration/image_load_test.go index 0894f24f2..c504cef9f 100644 --- a/integration/image_load_test.go +++ b/integration/image_load_test.go @@ -17,13 +17,13 @@ package integration import ( + "os/exec" "path/filepath" "testing" "time" "github.com/containerd/containerd/v2/integration/images" "github.com/stretchr/testify/require" - exec "golang.org/x/sys/execabs" runtime "k8s.io/cri-api/pkg/apis/runtime/v1" ) diff --git a/integration/issue7496_linux_test.go b/integration/issue7496_linux_test.go index 2573a2f72..8d4cd3dad 100644 --- a/integration/issue7496_linux_test.go +++ b/integration/issue7496_linux_test.go @@ -22,6 +22,7 @@ import ( "io" "net" "os" + "os/exec" "strconv" "strings" "syscall" @@ -35,7 +36,6 @@ import ( "github.com/containerd/ttrpc" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - exec "golang.org/x/sys/execabs" ) // TestIssue7496 is used to reproduce https://github.com/containerd/containerd/issues/7496 diff --git a/integration/main_test.go b/integration/main_test.go index 33519eee3..170a1079c 100644 --- a/integration/main_test.go +++ b/integration/main_test.go @@ -25,6 +25,7 @@ import ( "fmt" "io" "os" + "os/exec" "path/filepath" goruntime "runtime" "strconv" @@ -47,7 +48,6 @@ import ( "github.com/opencontainers/selinux/go-selinux" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - exec "golang.org/x/sys/execabs" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" runtime "k8s.io/cri-api/pkg/apis/runtime/v1" diff --git a/integration/pod_userns_linux_test.go b/integration/pod_userns_linux_test.go index ffd756452..16bb5a650 100644 --- a/integration/pod_userns_linux_test.go +++ b/integration/pod_userns_linux_test.go @@ -21,6 +21,7 @@ import ( "errors" "fmt" "os" + "os/exec" "os/user" "path/filepath" "strings" @@ -32,7 +33,6 @@ import ( runc "github.com/containerd/go-runc" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - exec "golang.org/x/sys/execabs" "golang.org/x/sys/unix" runtime "k8s.io/cri-api/pkg/apis/runtime/v1" ) diff --git a/integration/volume_copy_up_unix_test.go b/integration/volume_copy_up_unix_test.go index cf2d69a66..d0c599ba5 100644 --- a/integration/volume_copy_up_unix_test.go +++ b/integration/volume_copy_up_unix_test.go @@ -20,8 +20,7 @@ package integration import ( "fmt" - - exec "golang.org/x/sys/execabs" + "os/exec" ) func getOwnership(path string) (string, error) { diff --git a/mount/lookup_linux_test.go b/mount/lookup_linux_test.go index dc10d8da6..a805dffe7 100644 --- a/mount/lookup_linux_test.go +++ b/mount/lookup_linux_test.go @@ -19,6 +19,7 @@ package mount import ( "fmt" "os" + "os/exec" "path/filepath" "strings" "testing" @@ -28,7 +29,6 @@ import ( "github.com/containerd/continuity/testutil" "github.com/containerd/continuity/testutil/loopback" "github.com/stretchr/testify/assert" - exec "golang.org/x/sys/execabs" ) func checkLookup(t *testing.T, fsType, mntPoint, dir string) { diff --git a/mount/mount_freebsd.go b/mount/mount_freebsd.go index 6f3e8ff91..8b384267f 100644 --- a/mount/mount_freebsd.go +++ b/mount/mount_freebsd.go @@ -20,9 +20,9 @@ import ( "errors" "fmt" "os" + "os/exec" "time" - exec "golang.org/x/sys/execabs" "golang.org/x/sys/unix" ) diff --git a/mount/mount_linux.go b/mount/mount_linux.go index 69a032b9f..c30dbfaca 100644 --- a/mount/mount_linux.go +++ b/mount/mount_linux.go @@ -20,6 +20,7 @@ import ( "errors" "fmt" "os" + "os/exec" "path" "path/filepath" "runtime" @@ -28,8 +29,6 @@ import ( "time" "github.com/sirupsen/logrus" - - exec "golang.org/x/sys/execabs" "golang.org/x/sys/unix" ) diff --git a/mount/mount_linux_test.go b/mount/mount_linux_test.go index 037c246ea..ec340e831 100644 --- a/mount/mount_linux_test.go +++ b/mount/mount_linux_test.go @@ -19,12 +19,12 @@ package mount import ( "fmt" "os" + "os/exec" "path/filepath" "reflect" "testing" "github.com/containerd/continuity/testutil" - exec "golang.org/x/sys/execabs" "golang.org/x/sys/unix" ) diff --git a/pkg/process/io.go b/pkg/process/io.go index 9688dfb0f..3aae5b0ad 100644 --- a/pkg/process/io.go +++ b/pkg/process/io.go @@ -25,6 +25,7 @@ import ( "io" "net/url" "os" + "os/exec" "path/filepath" "sync" "sync/atomic" @@ -36,7 +37,6 @@ import ( "github.com/containerd/fifo" runc "github.com/containerd/go-runc" "github.com/containerd/log" - exec "golang.org/x/sys/execabs" ) const binaryIOProcTermTimeout = 12 * time.Second // Give logger process solid 10 seconds for cleanup diff --git a/pkg/process/io_util.go b/pkg/process/io_util.go index e814c114b..72bbf9233 100644 --- a/pkg/process/io_util.go +++ b/pkg/process/io_util.go @@ -19,8 +19,7 @@ package process import ( "net/url" "os" - - exec "golang.org/x/sys/execabs" + "os/exec" ) // NewBinaryCmd returns a Cmd to be used to start a logging binary. diff --git a/runtime/v2/runc/manager/manager_linux.go b/runtime/v2/runc/manager/manager_linux.go index d780a064a..919fccff8 100644 --- a/runtime/v2/runc/manager/manager_linux.go +++ b/runtime/v2/runc/manager/manager_linux.go @@ -21,6 +21,7 @@ import ( "encoding/json" "fmt" "os" + "os/exec" "path/filepath" goruntime "runtime" "syscall" @@ -39,7 +40,6 @@ import ( "github.com/containerd/containerd/v2/runtime/v2/shim" runcC "github.com/containerd/go-runc" "github.com/containerd/log" - exec "golang.org/x/sys/execabs" "golang.org/x/sys/unix" ) diff --git a/runtime/v2/shim/util.go b/runtime/v2/shim/util.go index 546b2f849..0e1d840a9 100644 --- a/runtime/v2/shim/util.go +++ b/runtime/v2/shim/util.go @@ -24,13 +24,13 @@ import ( "io" "net" "os" + "os/exec" "path/filepath" "strings" "time" "github.com/containerd/ttrpc" "github.com/containerd/typeurl/v2" - exec "golang.org/x/sys/execabs" "github.com/containerd/containerd/v2/errdefs" "github.com/containerd/containerd/v2/namespaces" diff --git a/snapshots/btrfs/btrfs_test.go b/snapshots/btrfs/btrfs_test.go index efe3c52a9..c61ba37d3 100644 --- a/snapshots/btrfs/btrfs_test.go +++ b/snapshots/btrfs/btrfs_test.go @@ -24,6 +24,7 @@ import ( "errors" "fmt" "os" + "os/exec" "path/filepath" "strings" "testing" @@ -35,7 +36,6 @@ import ( "github.com/containerd/containerd/v2/snapshots/testsuite" "github.com/containerd/continuity/testutil/loopback" "github.com/containerd/plugin" - exec "golang.org/x/sys/execabs" "golang.org/x/sys/unix" ) @@ -51,7 +51,6 @@ func boltSnapshotter(t *testing.T) func(context.Context, string) (snapshots.Snap } return func(ctx context.Context, root string) (snapshots.Snapshotter, func() error, error) { - loopbackSize := int64(128 << 20) // 128 MB // mkfs.btrfs creates a fs which has a blocksize equal to the system default pagesize. If that pagesize // is > 4KB, mounting the fs will fail unless we increase the size of the file used by mkfs.btrfs @@ -59,7 +58,6 @@ func boltSnapshotter(t *testing.T) func(context.Context, string) (snapshots.Snap loopbackSize = int64(650 << 20) // 650 MB } loop, err := loopback.New(loopbackSize) - if err != nil { return nil, nil, err } @@ -146,7 +144,7 @@ func TestBtrfsMounts(t *testing.T) { } } - if err := os.MkdirAll(target, 0755); err != nil { + if err := os.MkdirAll(target, 0o755); err != nil { t.Fatal(err) } if err := mount.All(mounts, target); err != nil { @@ -155,13 +153,13 @@ func TestBtrfsMounts(t *testing.T) { defer testutil.Unmount(t, target) // write in some data - if err := os.WriteFile(filepath.Join(target, "foo"), []byte("content"), 0777); err != nil { + if err := os.WriteFile(filepath.Join(target, "foo"), []byte("content"), 0o777); err != nil { t.Fatal(err) } // TODO(stevvooe): We don't really make this with the driver, but that // might prove annoying in practice. - if err := os.MkdirAll(filepath.Join(root, "snapshots"), 0755); err != nil { + if err := os.MkdirAll(filepath.Join(root, "snapshots"), 0o755); err != nil { t.Fatal(err) } @@ -175,7 +173,7 @@ func TestBtrfsMounts(t *testing.T) { t.Fatal(err) } - if err := os.MkdirAll(target, 0755); err != nil { + if err := os.MkdirAll(target, 0o755); err != nil { t.Fatal(err) } @@ -192,7 +190,7 @@ func TestBtrfsMounts(t *testing.T) { t.Fatalf("wrong content in foo want: content, got: %s", bs) } - if err := os.WriteFile(filepath.Join(target, "bar"), []byte("content"), 0777); err != nil { + if err := os.WriteFile(filepath.Join(target, "bar"), []byte("content"), 0o777); err != nil { t.Fatal(err) } diff --git a/snapshots/devmapper/blkdiscard/blkdiscard.go b/snapshots/devmapper/blkdiscard/blkdiscard.go index bec283047..1718bbff5 100644 --- a/snapshots/devmapper/blkdiscard/blkdiscard.go +++ b/snapshots/devmapper/blkdiscard/blkdiscard.go @@ -18,7 +18,7 @@ package blkdiscard -import exec "golang.org/x/sys/execabs" +import "os/exec" // Version returns the output of "blkdiscard --version" func Version() (string, error) { diff --git a/snapshots/devmapper/dmsetup/dmsetup.go b/snapshots/devmapper/dmsetup/dmsetup.go index 3e0fbafa8..922753b78 100644 --- a/snapshots/devmapper/dmsetup/dmsetup.go +++ b/snapshots/devmapper/dmsetup/dmsetup.go @@ -25,11 +25,11 @@ import ( "fmt" "io" "os" + "os/exec" "strconv" "strings" blkdiscard "github.com/containerd/containerd/v2/snapshots/devmapper/blkdiscard" - exec "golang.org/x/sys/execabs" "golang.org/x/sys/unix" ) diff --git a/snapshots/devmapper/pool_device_test.go b/snapshots/devmapper/pool_device_test.go index fb889c4ab..7a4d2ff3f 100644 --- a/snapshots/devmapper/pool_device_test.go +++ b/snapshots/devmapper/pool_device_test.go @@ -22,6 +22,7 @@ import ( "context" "fmt" "os" + "os/exec" "path/filepath" "testing" "time" @@ -32,7 +33,6 @@ import ( "github.com/containerd/log" "github.com/docker/go-units" "github.com/stretchr/testify/assert" - exec "golang.org/x/sys/execabs" ) const ( diff --git a/snapshots/devmapper/snapshotter.go b/snapshots/devmapper/snapshotter.go index 93b15717e..fe041c742 100644 --- a/snapshots/devmapper/snapshotter.go +++ b/snapshots/devmapper/snapshotter.go @@ -23,6 +23,7 @@ import ( "errors" "fmt" "os" + "os/exec" "path/filepath" "strings" "sync" @@ -33,7 +34,6 @@ import ( "github.com/containerd/containerd/v2/snapshots/devmapper/dmsetup" "github.com/containerd/containerd/v2/snapshots/storage" "github.com/containerd/log" - exec "golang.org/x/sys/execabs" ) type fsType string diff --git a/snapshots/overlay/overlayutils/check_test.go b/snapshots/overlay/overlayutils/check_test.go index 055e40321..bb51376a3 100644 --- a/snapshots/overlay/overlayutils/check_test.go +++ b/snapshots/overlay/overlayutils/check_test.go @@ -19,11 +19,11 @@ package overlayutils import ( + "os/exec" "testing" "github.com/containerd/containerd/v2/pkg/testutil" "github.com/containerd/continuity/testutil/loopback" - exec "golang.org/x/sys/execabs" ) func testOverlaySupported(t testing.TB, expected bool, mkfs ...string) { diff --git a/sys/oom_linux_test.go b/sys/oom_linux_test.go index 2d32c81b6..7858b4efb 100644 --- a/sys/oom_linux_test.go +++ b/sys/oom_linux_test.go @@ -20,13 +20,13 @@ import ( "errors" "fmt" "os" + "os/exec" "testing" "time" "github.com/containerd/containerd/v2/pkg/userns" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - exec "golang.org/x/sys/execabs" ) func TestSetPositiveOomScoreAdjustment(t *testing.T) { diff --git a/sys/reaper/reaper_unix.go b/sys/reaper/reaper_unix.go index dd9297753..7ad69b581 100644 --- a/sys/reaper/reaper_unix.go +++ b/sys/reaper/reaper_unix.go @@ -21,13 +21,13 @@ package reaper import ( "errors" "fmt" + "os/exec" "runtime" "sync" "syscall" "time" runc "github.com/containerd/go-runc" - exec "golang.org/x/sys/execabs" "golang.org/x/sys/unix" )