Merge pull request #3713 from crosbymichael/runc-bump2
Bump runc to 1b8a1eeec3f337ab5d94f28980
This commit is contained in:
		| @@ -20,7 +20,7 @@ github.com/gogo/protobuf v1.2.1 | |||||||
| github.com/gogo/googleapis v1.2.0 | github.com/gogo/googleapis v1.2.0 | ||||||
| github.com/golang/protobuf v1.2.0 | github.com/golang/protobuf v1.2.0 | ||||||
| github.com/opencontainers/runtime-spec 29686dbc5559d93fb1ef402eeda3e35c38d75af4 # v1.0.1-59-g29686db | github.com/opencontainers/runtime-spec 29686dbc5559d93fb1ef402eeda3e35c38d75af4 # v1.0.1-59-g29686db | ||||||
| github.com/opencontainers/runc 3e425f80a8c931f88e6d94a8c831b9d5aa481657 # v1.0.0-rc8+ CVE-2019-16884 | github.com/opencontainers/runc 1b8a1eeec3f337ab5d94f289800b30835f2e5453 # v1.0.0-rc8+ CVE-2019-16884 | ||||||
| github.com/konsorten/go-windows-terminal-sequences v1.0.1 | github.com/konsorten/go-windows-terminal-sequences v1.0.1 | ||||||
| github.com/sirupsen/logrus v1.4.1 | github.com/sirupsen/logrus v1.4.1 | ||||||
| github.com/urfave/cli v1.22.0 | github.com/urfave/cli v1.22.0 | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/opencontainers/runc/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/opencontainers/runc/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -18,7 +18,7 @@ You can find official releases of `runc` on the [release](https://github.com/ope | |||||||
|  |  | ||||||
| ## Security | ## Security | ||||||
|  |  | ||||||
| Reporting process and disclosure communications are outlined in [/org/security](https://github.com/opencontainers/org/blob/master/security/) | The reporting process and disclosure communications are outlined in [/org/security](https://github.com/opencontainers/org/blob/master/security/). | ||||||
|  |  | ||||||
| ## Building | ## Building | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								vendor/github.com/opencontainers/runc/libcontainer/apparmor/apparmor.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								vendor/github.com/opencontainers/runc/libcontainer/apparmor/apparmor.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,6 +6,8 @@ import ( | |||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"io/ioutil" | 	"io/ioutil" | ||||||
| 	"os" | 	"os" | ||||||
|  |  | ||||||
|  | 	"github.com/opencontainers/runc/libcontainer/utils" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // IsEnabled returns true if apparmor is enabled for the host. | // IsEnabled returns true if apparmor is enabled for the host. | ||||||
| @@ -19,7 +21,7 @@ func IsEnabled() bool { | |||||||
| 	return false | 	return false | ||||||
| } | } | ||||||
|  |  | ||||||
| func setprocattr(attr, value string) error { | func setProcAttr(attr, value string) error { | ||||||
| 	// Under AppArmor you can only change your own attr, so use /proc/self/ | 	// Under AppArmor you can only change your own attr, so use /proc/self/ | ||||||
| 	// instead of /proc/<tid>/ like libapparmor does | 	// instead of /proc/<tid>/ like libapparmor does | ||||||
| 	path := fmt.Sprintf("/proc/self/attr/%s", attr) | 	path := fmt.Sprintf("/proc/self/attr/%s", attr) | ||||||
| @@ -30,6 +32,10 @@ func setprocattr(attr, value string) error { | |||||||
| 	} | 	} | ||||||
| 	defer f.Close() | 	defer f.Close() | ||||||
|  |  | ||||||
|  | 	if err := utils.EnsureProcHandle(f); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	_, err = fmt.Fprintf(f, "%s", value) | 	_, err = fmt.Fprintf(f, "%s", value) | ||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
| @@ -37,7 +43,7 @@ func setprocattr(attr, value string) error { | |||||||
| // changeOnExec reimplements aa_change_onexec from libapparmor in Go | // changeOnExec reimplements aa_change_onexec from libapparmor in Go | ||||||
| func changeOnExec(name string) error { | func changeOnExec(name string) error { | ||||||
| 	value := "exec " + name | 	value := "exec " + name | ||||||
| 	if err := setprocattr("exec", value); err != nil { | 	if err := setProcAttr("exec", value); err != nil { | ||||||
| 		return fmt.Errorf("apparmor failed to apply profile: %s", err) | 		return fmt.Errorf("apparmor failed to apply profile: %s", err) | ||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								vendor/github.com/opencontainers/runc/libcontainer/configs/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/opencontainers/runc/libcontainer/configs/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -44,6 +44,7 @@ const ( | |||||||
| 	Trap | 	Trap | ||||||
| 	Allow | 	Allow | ||||||
| 	Trace | 	Trace | ||||||
|  | 	Log | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // Operator is a comparison operator to be used when matching syscall arguments in Seccomp | // Operator is a comparison operator to be used when matching syscall arguments in Seccomp | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								vendor/github.com/opencontainers/runc/libcontainer/seccomp/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								vendor/github.com/opencontainers/runc/libcontainer/seccomp/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -22,6 +22,7 @@ var actions = map[string]configs.Action{ | |||||||
| 	"SCMP_ACT_TRAP":  configs.Trap, | 	"SCMP_ACT_TRAP":  configs.Trap, | ||||||
| 	"SCMP_ACT_ALLOW": configs.Allow, | 	"SCMP_ACT_ALLOW": configs.Allow, | ||||||
| 	"SCMP_ACT_TRACE": configs.Trace, | 	"SCMP_ACT_TRACE": configs.Trace, | ||||||
|  | 	"SCMP_ACT_LOG":   configs.Log, | ||||||
| } | } | ||||||
|  |  | ||||||
| var archs = map[string]string{ | var archs = map[string]string{ | ||||||
|   | |||||||
							
								
								
									
										3
									
								
								vendor/github.com/opencontainers/runc/libcontainer/seccomp/seccomp_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/opencontainers/runc/libcontainer/seccomp/seccomp_linux.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -19,6 +19,7 @@ var ( | |||||||
| 	actTrap  = libseccomp.ActTrap | 	actTrap  = libseccomp.ActTrap | ||||||
| 	actKill  = libseccomp.ActKill | 	actKill  = libseccomp.ActKill | ||||||
| 	actTrace = libseccomp.ActTrace.SetReturnCode(int16(unix.EPERM)) | 	actTrace = libseccomp.ActTrace.SetReturnCode(int16(unix.EPERM)) | ||||||
|  | 	actLog   = libseccomp.ActLog | ||||||
| 	actErrno = libseccomp.ActErrno.SetReturnCode(int16(unix.EPERM)) | 	actErrno = libseccomp.ActErrno.SetReturnCode(int16(unix.EPERM)) | ||||||
| ) | ) | ||||||
|  |  | ||||||
| @@ -112,6 +113,8 @@ func getAction(act configs.Action) (libseccomp.ScmpAction, error) { | |||||||
| 		return actAllow, nil | 		return actAllow, nil | ||||||
| 	case configs.Trace: | 	case configs.Trace: | ||||||
| 		return actTrace, nil | 		return actTrace, nil | ||||||
|  | 	case configs.Log: | ||||||
|  | 		return actLog, nil | ||||||
| 	default: | 	default: | ||||||
| 		return libseccomp.ActInvalid, fmt.Errorf("invalid action, cannot use in rule") | 		return libseccomp.ActInvalid, fmt.Errorf("invalid action, cannot use in rule") | ||||||
| 	} | 	} | ||||||
|   | |||||||
							
								
								
									
										93
									
								
								vendor/github.com/opencontainers/runc/libcontainer/utils/cmsg.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								vendor/github.com/opencontainers/runc/libcontainer/utils/cmsg.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,93 @@ | |||||||
|  | // +build linux | ||||||
|  |  | ||||||
|  | package utils | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Copyright 2016, 2017 SUSE LLC | ||||||
|  |  * | ||||||
|  |  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |  * you may not use this file except in compliance with the License. | ||||||
|  |  * You may obtain a copy of the License at | ||||||
|  |  * | ||||||
|  |  *     http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  * | ||||||
|  |  * Unless required by applicable law or agreed to in writing, software | ||||||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |  * See the License for the specific language governing permissions and | ||||||
|  |  * limitations under the License. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 	"os" | ||||||
|  |  | ||||||
|  | 	"golang.org/x/sys/unix" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // MaxSendfdLen is the maximum length of the name of a file descriptor being | ||||||
|  | // sent using SendFd. The name of the file handle returned by RecvFd will never | ||||||
|  | // be larger than this value. | ||||||
|  | const MaxNameLen = 4096 | ||||||
|  |  | ||||||
|  | // oobSpace is the size of the oob slice required to store a single FD. Note | ||||||
|  | // that unix.UnixRights appears to make the assumption that fd is always int32, | ||||||
|  | // so sizeof(fd) = 4. | ||||||
|  | var oobSpace = unix.CmsgSpace(4) | ||||||
|  |  | ||||||
|  | // RecvFd waits for a file descriptor to be sent over the given AF_UNIX | ||||||
|  | // socket. The file name of the remote file descriptor will be recreated | ||||||
|  | // locally (it is sent as non-auxiliary data in the same payload). | ||||||
|  | func RecvFd(socket *os.File) (*os.File, error) { | ||||||
|  | 	// For some reason, unix.Recvmsg uses the length rather than the capacity | ||||||
|  | 	// when passing the msg_controllen and other attributes to recvmsg.  So we | ||||||
|  | 	// have to actually set the length. | ||||||
|  | 	name := make([]byte, MaxNameLen) | ||||||
|  | 	oob := make([]byte, oobSpace) | ||||||
|  |  | ||||||
|  | 	sockfd := socket.Fd() | ||||||
|  | 	n, oobn, _, _, err := unix.Recvmsg(int(sockfd), name, oob, 0) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if n >= MaxNameLen || oobn != oobSpace { | ||||||
|  | 		return nil, fmt.Errorf("recvfd: incorrect number of bytes read (n=%d oobn=%d)", n, oobn) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Truncate. | ||||||
|  | 	name = name[:n] | ||||||
|  | 	oob = oob[:oobn] | ||||||
|  |  | ||||||
|  | 	scms, err := unix.ParseSocketControlMessage(oob) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	if len(scms) != 1 { | ||||||
|  | 		return nil, fmt.Errorf("recvfd: number of SCMs is not 1: %d", len(scms)) | ||||||
|  | 	} | ||||||
|  | 	scm := scms[0] | ||||||
|  |  | ||||||
|  | 	fds, err := unix.ParseUnixRights(&scm) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, err | ||||||
|  | 	} | ||||||
|  | 	if len(fds) != 1 { | ||||||
|  | 		return nil, fmt.Errorf("recvfd: number of fds is not 1: %d", len(fds)) | ||||||
|  | 	} | ||||||
|  | 	fd := uintptr(fds[0]) | ||||||
|  |  | ||||||
|  | 	return os.NewFile(fd, string(name)), nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SendFd sends a file descriptor over the given AF_UNIX socket. In | ||||||
|  | // addition, the file.Name() of the given file will also be sent as | ||||||
|  | // non-auxiliary data in the same payload (allowing to send contextual | ||||||
|  | // information for a file descriptor). | ||||||
|  | func SendFd(socket *os.File, name string, fd uintptr) error { | ||||||
|  | 	if len(name) >= MaxNameLen { | ||||||
|  | 		return fmt.Errorf("sendfd: filename too long: %s", name) | ||||||
|  | 	} | ||||||
|  | 	oob := unix.UnixRights(int(fd)) | ||||||
|  | 	return unix.Sendmsg(int(socket.Fd()), []byte(name), oob, nil, 0) | ||||||
|  | } | ||||||
							
								
								
									
										112
									
								
								vendor/github.com/opencontainers/runc/libcontainer/utils/utils.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								vendor/github.com/opencontainers/runc/libcontainer/utils/utils.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,112 @@ | |||||||
|  | package utils | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"encoding/json" | ||||||
|  | 	"io" | ||||||
|  | 	"os" | ||||||
|  | 	"path/filepath" | ||||||
|  | 	"strings" | ||||||
|  | 	"unsafe" | ||||||
|  |  | ||||||
|  | 	"golang.org/x/sys/unix" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	exitSignalOffset = 128 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // ResolveRootfs ensures that the current working directory is | ||||||
|  | // not a symlink and returns the absolute path to the rootfs | ||||||
|  | func ResolveRootfs(uncleanRootfs string) (string, error) { | ||||||
|  | 	rootfs, err := filepath.Abs(uncleanRootfs) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	return filepath.EvalSymlinks(rootfs) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // ExitStatus returns the correct exit status for a process based on if it | ||||||
|  | // was signaled or exited cleanly | ||||||
|  | func ExitStatus(status unix.WaitStatus) int { | ||||||
|  | 	if status.Signaled() { | ||||||
|  | 		return exitSignalOffset + int(status.Signal()) | ||||||
|  | 	} | ||||||
|  | 	return status.ExitStatus() | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // WriteJSON writes the provided struct v to w using standard json marshaling | ||||||
|  | func WriteJSON(w io.Writer, v interface{}) error { | ||||||
|  | 	data, err := json.Marshal(v) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	_, err = w.Write(data) | ||||||
|  | 	return err | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 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 CleanPath(path string) string { | ||||||
|  | 	// Deal with empty strings nicely. | ||||||
|  | 	if path == "" { | ||||||
|  | 		return "" | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Ensure that all paths are cleaned (especially problematic ones like | ||||||
|  | 	// "/../../../../../" which can cause lots of issues). | ||||||
|  | 	path = filepath.Clean(path) | ||||||
|  |  | ||||||
|  | 	// If the path isn't absolute, we need to do more processing to fix paths | ||||||
|  | 	// such as "../../../../<etc>/some/path". We also shouldn't convert absolute | ||||||
|  | 	// paths to relative ones. | ||||||
|  | 	if !filepath.IsAbs(path) { | ||||||
|  | 		path = filepath.Clean(string(os.PathSeparator) + path) | ||||||
|  | 		// This can't fail, as (by definition) all paths are relative to root. | ||||||
|  | 		path, _ = filepath.Rel(string(os.PathSeparator), path) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	// Clean the path again for good measure. | ||||||
|  | 	return filepath.Clean(path) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // SearchLabels searches a list of key-value pairs for the provided key and | ||||||
|  | // returns the corresponding value. The pairs must be separated with '='. | ||||||
|  | func SearchLabels(labels []string, query string) string { | ||||||
|  | 	for _, l := range labels { | ||||||
|  | 		parts := strings.SplitN(l, "=", 2) | ||||||
|  | 		if len(parts) < 2 { | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		if parts[0] == query { | ||||||
|  | 			return parts[1] | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return "" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // 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 Annotations(labels []string) (bundle string, userAnnotations map[string]string) { | ||||||
|  | 	userAnnotations = make(map[string]string) | ||||||
|  | 	for _, l := range labels { | ||||||
|  | 		parts := strings.SplitN(l, "=", 2) | ||||||
|  | 		if len(parts) < 2 { | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		if parts[0] == "bundle" { | ||||||
|  | 			bundle = parts[1] | ||||||
|  | 		} else { | ||||||
|  | 			userAnnotations[parts[0]] = parts[1] | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func GetIntSize() int { | ||||||
|  | 	return int(unsafe.Sizeof(1)) | ||||||
|  | } | ||||||
							
								
								
									
										68
									
								
								vendor/github.com/opencontainers/runc/libcontainer/utils/utils_unix.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								vendor/github.com/opencontainers/runc/libcontainer/utils/utils_unix.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | |||||||
|  | // +build !windows | ||||||
|  |  | ||||||
|  | package utils | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"fmt" | ||||||
|  | 	"os" | ||||||
|  | 	"strconv" | ||||||
|  |  | ||||||
|  | 	"golang.org/x/sys/unix" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | // EnsureProcHandle returns whether or not the given file handle is on procfs. | ||||||
|  | func EnsureProcHandle(fh *os.File) error { | ||||||
|  | 	var buf unix.Statfs_t | ||||||
|  | 	if err := unix.Fstatfs(int(fh.Fd()), &buf); err != nil { | ||||||
|  | 		return fmt.Errorf("ensure %s is on procfs: %v", fh.Name(), err) | ||||||
|  | 	} | ||||||
|  | 	if buf.Type != unix.PROC_SUPER_MAGIC { | ||||||
|  | 		return fmt.Errorf("%s is not on procfs", fh.Name()) | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // CloseExecFrom applies O_CLOEXEC to all file descriptors currently open for | ||||||
|  | // the process (except for those below the given fd value). | ||||||
|  | func CloseExecFrom(minFd int) error { | ||||||
|  | 	fdDir, err := os.Open("/proc/self/fd") | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	defer fdDir.Close() | ||||||
|  |  | ||||||
|  | 	if err := EnsureProcHandle(fdDir); err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	fdList, err := fdDir.Readdirnames(-1) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	for _, fdStr := range fdList { | ||||||
|  | 		fd, err := strconv.Atoi(fdStr) | ||||||
|  | 		// Ignore non-numeric file names. | ||||||
|  | 		if err != nil { | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		// Ignore descriptors lower than our specified minimum. | ||||||
|  | 		if fd < minFd { | ||||||
|  | 			continue | ||||||
|  | 		} | ||||||
|  | 		// Intentionally ignore errors from unix.CloseOnExec -- the cases where | ||||||
|  | 		// this might fail are basically file descriptors that have already | ||||||
|  | 		// been closed (including and especially the one that was created when | ||||||
|  | 		// ioutil.ReadDir did the "opendir" syscall). | ||||||
|  | 		unix.CloseOnExec(fd) | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // NewSockPair returns a new unix socket pair | ||||||
|  | func NewSockPair(name string) (parent *os.File, child *os.File, err error) { | ||||||
|  | 	fds, err := unix.Socketpair(unix.AF_LOCAL, unix.SOCK_STREAM|unix.SOCK_CLOEXEC, 0) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return nil, nil, err | ||||||
|  | 	} | ||||||
|  | 	return os.NewFile(uintptr(fds[1]), name+"-p"), os.NewFile(uintptr(fds[0]), name+"-c"), nil | ||||||
|  | } | ||||||
							
								
								
									
										2
									
								
								vendor/github.com/opencontainers/runc/vendor.conf
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/opencontainers/runc/vendor.conf
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,7 +6,7 @@ github.com/opencontainers/runtime-spec  29686dbc5559d93fb1ef402eeda3e35c38d75af4 | |||||||
| # Core libcontainer functionality. | # Core libcontainer functionality. | ||||||
| github.com/checkpoint-restore/go-criu   17b0214f6c48980c45dc47ecb0cfd6d9e02df723 # v3.11 | github.com/checkpoint-restore/go-criu   17b0214f6c48980c45dc47ecb0cfd6d9e02df723 # v3.11 | ||||||
| github.com/mrunalp/fileutils            7d4729fb36185a7c1719923406c9d40e54fb93c7 | github.com/mrunalp/fileutils            7d4729fb36185a7c1719923406c9d40e54fb93c7 | ||||||
| github.com/opencontainers/selinux       3a1f366feb7aecbf7a0e71ac4cea88b31597de9e # v1.2.2 | github.com/opencontainers/selinux       5215b1806f52b1fcc2070a8826c542c9d33cd3cf # v1.3.0 (+ CVE-2019-16884) | ||||||
| github.com/seccomp/libseccomp-golang    689e3c1541a84461afc49c1c87352a6cedf72e9c # v0.9.1 | github.com/seccomp/libseccomp-golang    689e3c1541a84461afc49c1c87352a6cedf72e9c # v0.9.1 | ||||||
| github.com/sirupsen/logrus              8bdbc7bcc01dcbb8ec23dc8a28e332258d25251f # v1.4.1 | github.com/sirupsen/logrus              8bdbc7bcc01dcbb8ec23dc8a28e332258d25251f # v1.4.1 | ||||||
| github.com/syndtr/gocapability          d98352740cb2c55f81556b63d4a1ec64c5a319c2 | github.com/syndtr/gocapability          d98352740cb2c55f81556b63d4a1ec64c5a319c2 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Phil Estes
					Phil Estes