package utils

import "github.com/opencontainers/runc/libcontainer/utils"

Index

Variables

var NativeEndian binary.ByteOrder

NativeEndian is the native byte order of the host system.

Functions

func Annotations

func Annotations(labels []string) (bundle string, userAnnotations map[string]string)

Annotations returns the bundle path and user defined annotations from the libcontainer state. We need to remove the bundle because that is a label added by libcontainer.

func CleanPath

func CleanPath(path string) string

CleanPath makes a path safe for use with filepath.Join. This is done by not only cleaning the path, but also (if the path is relative) adding a leading '/' and cleaning it (then removing the leading '/'). This ensures that a path resulting from prepending another path will always resolve to lexically be a subdirectory of the prefixed path. This is all done lexically, so paths that include symlinks won't be safe as a result of using CleanPath.

func CloseExecFrom

func CloseExecFrom(minFd int) error

CloseExecFrom applies O_CLOEXEC to all file descriptors currently open for the process (except for those below the given fd value).

func EnsureProcHandle

func EnsureProcHandle(fh *os.File) error

EnsureProcHandle returns whether or not the given file handle is on procfs.

func ExitStatus

func ExitStatus(status unix.WaitStatus) int

ExitStatus returns the correct exit status for a process based on if it was signaled or exited cleanly

func NewSockPair

func NewSockPair(name string) (parent *os.File, child *os.File, err error)

NewSockPair returns a new unix socket pair

func ResolveRootfs

func ResolveRootfs(uncleanRootfs string) (string, error)

ResolveRootfs ensures that the current working directory is not a symlink and returns the absolute path to the rootfs

func SearchLabels

func SearchLabels(labels []string, query string) string

SearchLabels searches a list of key-value pairs for the provided key and returns the corresponding value. The pairs must be separated with '='.

func WithProcfd

func WithProcfd(root, unsafePath string, fn func(procfd string) error) error

WithProcfd runs the passed closure with a procfd path (/proc/self/fd/...) corresponding to the unsafePath resolved within the root. Before passing the fd, this path is verified to have been inside the root -- so operating on it through the passed fdpath should be safe. Do not access this path through the original path strings, and do not attempt to use the pathname outside of the passed closure (the file handle will be freed once the closure returns).

func WriteJSON

func WriteJSON(w io.Writer, v interface{}) error

WriteJSON writes the provided struct v to w using standard json marshaling

Source Files

utils.go utils_unix.go

Version
v1.0.0
Published
Jun 17, 2021
Platform
js/wasm
Imports
11 packages
Last checked
3 hours ago

Tools for package owners.