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:
		
							
								
								
									
										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
	 Michael Crosby
					Michael Crosby