From 4c1294ccb76b66e28834ef17a8c94683b3a769b3 Mon Sep 17 00:00:00 2001 From: Doug Rabson Date: Sun, 13 Nov 2022 13:27:08 +0000 Subject: [PATCH] pkg/domain: Make checkExecPreserveFDs platform-specific Also add a FreeBSD version. [NO NEW TESTS NEEDED] Signed-off-by: Doug Rabson --- pkg/domain/infra/abi/containers.go | 4 ++-- pkg/domain/infra/abi/containers_freebsd.go | 3 +++ pkg/domain/infra/abi/containers_linux.go | 3 +++ 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 pkg/domain/infra/abi/containers_freebsd.go create mode 100644 pkg/domain/infra/abi/containers_linux.go diff --git a/pkg/domain/infra/abi/containers.go b/pkg/domain/infra/abi/containers.go index 493b07c3f7..61f7f0ab41 100644 --- a/pkg/domain/infra/abi/containers.go +++ b/pkg/domain/infra/abi/containers.go @@ -870,7 +870,7 @@ func makeExecConfig(options entities.ExecOptions, rt *libpod.Runtime) (*libpod.E func checkExecPreserveFDs(options entities.ExecOptions) error { if options.PreserveFDs > 0 { - entries, err := os.ReadDir("/proc/self/fd") + entries, err := os.ReadDir(processFileDescriptorsPath) if err != nil { return err } @@ -879,7 +879,7 @@ func checkExecPreserveFDs(options entities.ExecOptions) error { for _, e := range entries { i, err := strconv.Atoi(e.Name()) if err != nil { - return fmt.Errorf("cannot parse %s in /proc/self/fd: %w", e.Name(), err) + return fmt.Errorf("cannot parse %s in %s: %w", e.Name(), processFileDescriptorsPath, err) } m[i] = true } diff --git a/pkg/domain/infra/abi/containers_freebsd.go b/pkg/domain/infra/abi/containers_freebsd.go new file mode 100644 index 0000000000..a095a87cb7 --- /dev/null +++ b/pkg/domain/infra/abi/containers_freebsd.go @@ -0,0 +1,3 @@ +package abi + +const processFileDescriptorsPath = "/dev/fd" diff --git a/pkg/domain/infra/abi/containers_linux.go b/pkg/domain/infra/abi/containers_linux.go new file mode 100644 index 0000000000..10b3d33a49 --- /dev/null +++ b/pkg/domain/infra/abi/containers_linux.go @@ -0,0 +1,3 @@ +package abi + +const processFileDescriptorsPath = "/proc/self/fd"