Update runc to 58592df56734acf62e574865fe40b9e53e
This includes fixes for user namespaces as well as a long standing bug for running docker and containerd inside an lxc container. Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
		@@ -20,7 +20,7 @@ github.com/gogo/protobuf v1.0.0
 | 
			
		||||
github.com/gogo/googleapis 08a7655d27152912db7aaf4f983275eaf8d128ef
 | 
			
		||||
github.com/golang/protobuf v1.1.0
 | 
			
		||||
github.com/opencontainers/runtime-spec eba862dc2470385a233c7507392675cbeadf7353 # v1.0.1-45-geba862d
 | 
			
		||||
github.com/opencontainers/runc 00dc70017d222b178a002ed30e9321b12647af2d
 | 
			
		||||
github.com/opencontainers/runc 58592df56734acf62e574865fe40b9e53e967910
 | 
			
		||||
github.com/sirupsen/logrus v1.0.0
 | 
			
		||||
github.com/urfave/cli 7bc6a0acffa589f415f88aca16cc1de5ffd66f9c
 | 
			
		||||
golang.org/x/net b3756b4b77d7b13260a0a2ec658753cf48922eac
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								vendor/github.com/opencontainers/runc/libcontainer/configs/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								vendor/github.com/opencontainers/runc/libcontainer/configs/config.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -186,12 +186,19 @@ type Config struct {
 | 
			
		||||
	// callers keyring in this case.
 | 
			
		||||
	NoNewKeyring bool `json:"no_new_keyring"`
 | 
			
		||||
 | 
			
		||||
	// Rootless specifies whether the container is a rootless container.
 | 
			
		||||
	Rootless bool `json:"rootless"`
 | 
			
		||||
 | 
			
		||||
	// IntelRdt specifies settings for Intel RDT/CAT group that the container is placed into
 | 
			
		||||
	// to limit the resources (e.g., L3 cache) the container has available
 | 
			
		||||
	// IntelRdt specifies settings for Intel RDT group that the container is placed into
 | 
			
		||||
	// to limit the resources (e.g., L3 cache, memory bandwidth) the container has available
 | 
			
		||||
	IntelRdt *IntelRdt `json:"intel_rdt,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// RootlessEUID is set when the runc was launched with non-zero EUID.
 | 
			
		||||
	// Note that RootlessEUID is set to false when launched with EUID=0 in userns.
 | 
			
		||||
	// When RootlessEUID is set, runc creates a new userns for the container.
 | 
			
		||||
	// (config.json needs to contain userns settings)
 | 
			
		||||
	RootlessEUID bool `json:"rootless_euid,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// RootlessCgroups is set when unlikely to have the full access to cgroups.
 | 
			
		||||
	// When RootlessCgroups is set, cgroups errors are ignored.
 | 
			
		||||
	RootlessCgroups bool `json:"rootless_cgroups,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Hooks struct {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								vendor/github.com/opencontainers/runc/libcontainer/configs/intelrdt.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/opencontainers/runc/libcontainer/configs/intelrdt.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -4,4 +4,8 @@ type IntelRdt struct {
 | 
			
		||||
	// The schema for L3 cache id and capacity bitmask (CBM)
 | 
			
		||||
	// Format: "L3:<cache_id0>=<cbm0>;<cache_id1>=<cbm1>;..."
 | 
			
		||||
	L3CacheSchema string `json:"l3_cache_schema,omitempty"`
 | 
			
		||||
 | 
			
		||||
	// The schema of memory bandwidth percentage per L3 cache id
 | 
			
		||||
	// Format: "MB:<cache_id0>=bandwidth0;<cache_id1>=bandwidth1;..."
 | 
			
		||||
	MemBwSchema string `json:"memBwSchema,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								vendor/github.com/opencontainers/runc/libcontainer/nsenter/nsexec.c
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/opencontainers/runc/libcontainer/nsenter/nsexec.c
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -82,7 +82,7 @@ struct nlconfig_t {
 | 
			
		||||
	uint8_t is_setgroup;
 | 
			
		||||
 | 
			
		||||
	/* Rootless container settings. */
 | 
			
		||||
	uint8_t is_rootless;
 | 
			
		||||
	uint8_t is_rootless_euid;	/* boolean */
 | 
			
		||||
	char *uidmappath;
 | 
			
		||||
	size_t uidmappath_len;
 | 
			
		||||
	char *gidmappath;
 | 
			
		||||
@@ -100,7 +100,7 @@ struct nlconfig_t {
 | 
			
		||||
#define GIDMAP_ATTR			27284
 | 
			
		||||
#define SETGROUP_ATTR		27285
 | 
			
		||||
#define OOM_SCORE_ADJ_ATTR	27286
 | 
			
		||||
#define ROOTLESS_ATTR	    27287
 | 
			
		||||
#define ROOTLESS_EUID_ATTR	27287
 | 
			
		||||
#define UIDMAPPATH_ATTR	    27288
 | 
			
		||||
#define GIDMAPPATH_ATTR	    27289
 | 
			
		||||
 | 
			
		||||
@@ -419,8 +419,8 @@ static void nl_parse(int fd, struct nlconfig_t *config)
 | 
			
		||||
		case CLONE_FLAGS_ATTR:
 | 
			
		||||
			config->cloneflags = readint32(current);
 | 
			
		||||
			break;
 | 
			
		||||
		case ROOTLESS_ATTR:
 | 
			
		||||
			config->is_rootless = readint8(current);
 | 
			
		||||
		case ROOTLESS_EUID_ATTR:
 | 
			
		||||
			config->is_rootless_euid = readint8(current);	/* boolean */
 | 
			
		||||
			break;
 | 
			
		||||
		case OOM_SCORE_ADJ_ATTR:
 | 
			
		||||
			config->oom_score_adj = current;
 | 
			
		||||
@@ -687,7 +687,7 @@ void nsexec(void)
 | 
			
		||||
					 * newuidmap/newgidmap shall be used.
 | 
			
		||||
					 */
 | 
			
		||||
 | 
			
		||||
					if (config.is_rootless && !config.is_setgroup)
 | 
			
		||||
					if (config.is_rootless_euid && !config.is_setgroup)
 | 
			
		||||
						update_setgroups(child, SETGROUPS_DENY);
 | 
			
		||||
 | 
			
		||||
					/* Set up mappings. */
 | 
			
		||||
@@ -953,7 +953,7 @@ void nsexec(void)
 | 
			
		||||
			if (setgid(0) < 0)
 | 
			
		||||
				bail("setgid failed");
 | 
			
		||||
 | 
			
		||||
			if (!config.is_rootless && config.is_setgroup) {
 | 
			
		||||
			if (!config.is_rootless_euid && config.is_setgroup) {
 | 
			
		||||
				if (setgroups(0, NULL) < 0)
 | 
			
		||||
					bail("setgroups failed");
 | 
			
		||||
			}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										22
									
								
								vendor/github.com/opencontainers/runc/libcontainer/user/lookup_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/opencontainers/runc/libcontainer/user/lookup_unix.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -5,6 +5,7 @@ package user
 | 
			
		||||
import (
 | 
			
		||||
	"io"
 | 
			
		||||
	"os"
 | 
			
		||||
	"strconv"
 | 
			
		||||
 | 
			
		||||
	"golang.org/x/sys/unix"
 | 
			
		||||
)
 | 
			
		||||
@@ -115,22 +116,23 @@ func CurrentGroup() (Group, error) {
 | 
			
		||||
	return LookupGid(unix.Getgid())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CurrentUserSubUIDs() ([]SubID, error) {
 | 
			
		||||
func currentUserSubIDs(fileName string) ([]SubID, error) {
 | 
			
		||||
	u, err := CurrentUser()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return ParseSubIDFileFilter("/etc/subuid",
 | 
			
		||||
		func(entry SubID) bool { return entry.Name == u.Name })
 | 
			
		||||
	filter := func(entry SubID) bool {
 | 
			
		||||
		return entry.Name == u.Name || entry.Name == strconv.Itoa(u.Uid)
 | 
			
		||||
	}
 | 
			
		||||
	return ParseSubIDFileFilter(fileName, filter)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CurrentGroupSubGIDs() ([]SubID, error) {
 | 
			
		||||
	g, err := CurrentGroup()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return ParseSubIDFileFilter("/etc/subgid",
 | 
			
		||||
		func(entry SubID) bool { return entry.Name == g.Name })
 | 
			
		||||
func CurrentUserSubUIDs() ([]SubID, error) {
 | 
			
		||||
	return currentUserSubIDs("/etc/subuid")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CurrentUserSubGIDs() ([]SubID, error) {
 | 
			
		||||
	return currentUserSubIDs("/etc/subgid")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func CurrentProcessUIDMap() ([]IDMap, error) {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								vendor/github.com/opencontainers/runc/vendor.conf
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/opencontainers/runc/vendor.conf
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,7 +1,7 @@
 | 
			
		||||
# OCI runtime-spec. When updating this, make sure you use a version tag rather
 | 
			
		||||
# than a commit ID so it's much more obvious what version of the spec we are
 | 
			
		||||
# using.
 | 
			
		||||
github.com/opencontainers/runtime-spec v1.0.0
 | 
			
		||||
github.com/opencontainers/runtime-spec 5684b8af48c1ac3b1451fa499724e30e3c20a294
 | 
			
		||||
# Core libcontainer functionality.
 | 
			
		||||
github.com/mrunalp/fileutils ed869b029674c0e9ce4c0dfa781405c2d9946d08
 | 
			
		||||
github.com/opencontainers/selinux v1.0.0-rc1
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user