mirror of https://github.com/containers/podman.git
libpod: Move uses of unix.O_PATH to container_internal_linux.go
The O_PATH flag is a recent addition to the open syscall and is not present in darwin or in FreeBSD releases before 13.1. The constant is not present in the FreeBSD version of x/sys/unix since that package supports FreeBSD 12.3 and later. [NO NEW TESTS NEEDED] Signed-off-by: Doug Rabson <dfr@rabson.org>
This commit is contained in:
parent
5d7778411a
commit
1572420c3f
|
|
@ -1545,7 +1545,7 @@ func (c *Container) mountStorage() (_ string, deferredErr error) {
|
|||
|
||||
rootUID, rootGID := c.RootUID(), c.RootGID()
|
||||
|
||||
dirfd, err := unix.Open(mountPoint, unix.O_RDONLY|unix.O_PATH, 0)
|
||||
dirfd, err := openDirectory(mountPoint)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("open mount point: %w", err)
|
||||
}
|
||||
|
|
@ -1568,7 +1568,7 @@ func (c *Container) mountStorage() (_ string, deferredErr error) {
|
|||
return "", fmt.Errorf("resolve /etc in the container: %w", err)
|
||||
}
|
||||
|
||||
etcInTheContainerFd, err := unix.Open(etcInTheContainerPath, unix.O_RDONLY|unix.O_PATH, 0)
|
||||
etcInTheContainerFd, err := openDirectory(etcInTheContainerPath)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("open /etc in the container: %w", err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3249,3 +3249,7 @@ func (c *Container) setupRootlessNetwork() error {
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func openDirectory(path string) (fd int, err error) {
|
||||
return unix.Open(path, unix.O_RDONLY|unix.O_PATH, 0)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,3 +93,7 @@ func getLocalhostHostEntry(c *Container) etchosts.HostEntries {
|
|||
func isRootlessCgroupSet(cgroup string) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func openDirectory(path string) (fd int, err error) {
|
||||
return -1, errors.New("unsupported openDirectory")
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue