Merge pull request #3372 from thaJeztah/bump_runc
bump runc v1.0.0-rc8-32-gf4982d86
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 v1.0.0-rc8 | github.com/opencontainers/runc f4982d86f7fde0b6f953cc62ccc4022c519a10a9 # v1.0.0-rc8-32-gf4982d86 | ||||||
| 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 7bc6a0acffa589f415f88aca16cc1de5ffd66f9c | github.com/urfave/cli 7bc6a0acffa589f415f88aca16cc1de5ffd66f9c | ||||||
|   | |||||||
							
								
								
									
										89
									
								
								vendor/github.com/opencontainers/runc/libcontainer/nsenter/nsexec.c
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										89
									
								
								vendor/github.com/opencontainers/runc/libcontainer/nsenter/nsexec.c
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -37,9 +37,6 @@ enum sync_t { | |||||||
| 	SYNC_RECVPID_ACK = 0x43,	/* PID was correctly received by parent. */ | 	SYNC_RECVPID_ACK = 0x43,	/* PID was correctly received by parent. */ | ||||||
| 	SYNC_GRANDCHILD = 0x44,	/* The grandchild is ready to run. */ | 	SYNC_GRANDCHILD = 0x44,	/* The grandchild is ready to run. */ | ||||||
| 	SYNC_CHILD_READY = 0x45,	/* The child or grandchild is ready to return. */ | 	SYNC_CHILD_READY = 0x45,	/* The child or grandchild is ready to return. */ | ||||||
|  |  | ||||||
| 	/* XXX: This doesn't help with segfaults and other such issues. */ |  | ||||||
| 	SYNC_ERR = 0xFF,	/* Fatal error, no turning back. The error code follows. */ |  | ||||||
| }; | }; | ||||||
|  |  | ||||||
| /* | /* | ||||||
| @@ -95,6 +92,15 @@ struct nlconfig_t { | |||||||
| 	size_t gidmappath_len; | 	size_t gidmappath_len; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | #define PANIC   "panic" | ||||||
|  | #define FATAL   "fatal" | ||||||
|  | #define ERROR   "error" | ||||||
|  | #define WARNING "warning" | ||||||
|  | #define INFO    "info" | ||||||
|  | #define DEBUG   "debug" | ||||||
|  |  | ||||||
|  | static int logfd = -1; | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * List of netlink message types sent to us as part of bootstrapping the init. |  * List of netlink message types sent to us as part of bootstrapping the init. | ||||||
|  * These constants are defined in libcontainer/message_linux.go. |  * These constants are defined in libcontainer/message_linux.go. | ||||||
| @@ -131,22 +137,34 @@ int setns(int fd, int nstype) | |||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | static void write_log_with_info(const char *level, const char *function, int line, const char *format, ...) | ||||||
|  | { | ||||||
|  | 	char message[1024] = {}; | ||||||
|  |  | ||||||
|  | 	va_list args; | ||||||
|  |  | ||||||
|  | 	if (logfd < 0 || level == NULL) | ||||||
|  | 		return; | ||||||
|  |  | ||||||
|  | 	va_start(args, format); | ||||||
|  | 	if (vsnprintf(message, sizeof(message), format, args) < 0) | ||||||
|  | 		return; | ||||||
|  | 	va_end(args); | ||||||
|  |  | ||||||
|  | 	if (dprintf(logfd, "{\"level\":\"%s\", \"msg\": \"%s:%d %s\"}\n", level, function, line, message) < 0) | ||||||
|  | 		return; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #define write_log(level, fmt, ...) \ | ||||||
|  | 	write_log_with_info((level), __FUNCTION__, __LINE__, (fmt), ##__VA_ARGS__) | ||||||
|  |  | ||||||
| /* XXX: This is ugly. */ | /* XXX: This is ugly. */ | ||||||
| static int syncfd = -1; | static int syncfd = -1; | ||||||
|  |  | ||||||
| /* TODO(cyphar): Fix this so it correctly deals with syncT. */ | #define bail(fmt, ...)                                       \ | ||||||
| #define bail(fmt, ...)								\ | 	do {                                                       \ | ||||||
| 	do {									\ | 		write_log(FATAL, "nsenter: " fmt ": %m", ##__VA_ARGS__); \ | ||||||
| 		int ret = __COUNTER__ + 1;					\ | 		exit(1);                                                 \ | ||||||
| 		fprintf(stderr, "nsenter: " fmt ": %m\n", ##__VA_ARGS__);	\ |  | ||||||
| 		if (syncfd >= 0) {						\ |  | ||||||
| 			enum sync_t s = SYNC_ERR;				\ |  | ||||||
| 			if (write(syncfd, &s, sizeof(s)) != sizeof(s))		\ |  | ||||||
| 				fprintf(stderr, "nsenter: failed: write(s)");	\ |  | ||||||
| 			if (write(syncfd, &ret, sizeof(ret)) != sizeof(ret))	\ |  | ||||||
| 				fprintf(stderr, "nsenter: failed: write(ret)");	\ |  | ||||||
| 		}								\ |  | ||||||
| 		exit(ret);							\ |  | ||||||
| 	} while(0) | 	} while(0) | ||||||
|  |  | ||||||
| static int write_file(char *data, size_t data_len, char *pathfmt, ...) | static int write_file(char *data, size_t data_len, char *pathfmt, ...) | ||||||
| @@ -352,6 +370,23 @@ static int initpipe(void) | |||||||
| 	return pipenum; | 	return pipenum; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | static void setup_logpipe(void) | ||||||
|  | { | ||||||
|  | 	char *logpipe, *endptr; | ||||||
|  |  | ||||||
|  | 	logpipe = getenv("_LIBCONTAINER_LOGPIPE"); | ||||||
|  | 	if (logpipe == NULL || *logpipe == '\0') { | ||||||
|  | 		return; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	logfd = strtol(logpipe, &endptr, 10); | ||||||
|  | 	if (logpipe == endptr || *endptr != '\0') { | ||||||
|  | 		fprintf(stderr, "unable to parse _LIBCONTAINER_LOGPIPE, value: %s\n", logpipe); | ||||||
|  | 		/* It is too early to use bail */ | ||||||
|  | 		exit(1); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
| /* Returns the clone(2) flag for a namespace, given the name of a namespace. */ | /* Returns the clone(2) flag for a namespace, given the name of a namespace. */ | ||||||
| static int nsflag(char *name) | static int nsflag(char *name) | ||||||
| { | { | ||||||
| @@ -544,6 +579,12 @@ void nsexec(void) | |||||||
| 	int sync_child_pipe[2], sync_grandchild_pipe[2]; | 	int sync_child_pipe[2], sync_grandchild_pipe[2]; | ||||||
| 	struct nlconfig_t config = { 0 }; | 	struct nlconfig_t config = { 0 }; | ||||||
|  |  | ||||||
|  | 	/* | ||||||
|  | 	 * Setup a pipe to send logs to the parent. This should happen | ||||||
|  | 	 * first, because bail will use that pipe. | ||||||
|  | 	 */ | ||||||
|  | 	setup_logpipe(); | ||||||
|  |  | ||||||
| 	/* | 	/* | ||||||
| 	 * If we don't have an init pipe, just return to the go routine. | 	 * If we don't have an init pipe, just return to the go routine. | ||||||
| 	 * We'll only get an init pipe for start or exec. | 	 * We'll only get an init pipe for start or exec. | ||||||
| @@ -560,6 +601,8 @@ void nsexec(void) | |||||||
| 	if (ensure_cloned_binary() < 0) | 	if (ensure_cloned_binary() < 0) | ||||||
| 		bail("could not ensure we are a cloned binary"); | 		bail("could not ensure we are a cloned binary"); | ||||||
|  |  | ||||||
|  | 	write_log(DEBUG, "nsexec started"); | ||||||
|  |  | ||||||
| 	/* Parse all of the netlink configuration. */ | 	/* Parse all of the netlink configuration. */ | ||||||
| 	nl_parse(pipenum, &config); | 	nl_parse(pipenum, &config); | ||||||
|  |  | ||||||
| @@ -676,7 +719,6 @@ void nsexec(void) | |||||||
| 			 */ | 			 */ | ||||||
| 			while (!ready) { | 			while (!ready) { | ||||||
| 				enum sync_t s; | 				enum sync_t s; | ||||||
| 				int ret; |  | ||||||
|  |  | ||||||
| 				syncfd = sync_child_pipe[1]; | 				syncfd = sync_child_pipe[1]; | ||||||
| 				close(sync_child_pipe[0]); | 				close(sync_child_pipe[0]); | ||||||
| @@ -685,12 +727,6 @@ void nsexec(void) | |||||||
| 					bail("failed to sync with child: next state"); | 					bail("failed to sync with child: next state"); | ||||||
|  |  | ||||||
| 				switch (s) { | 				switch (s) { | ||||||
| 				case SYNC_ERR: |  | ||||||
| 					/* We have to mirror the error code of the child. */ |  | ||||||
| 					if (read(syncfd, &ret, sizeof(ret)) != sizeof(ret)) |  | ||||||
| 						bail("failed to sync with child: read(error code)"); |  | ||||||
|  |  | ||||||
| 					exit(ret); |  | ||||||
| 				case SYNC_USERMAP_PLS: | 				case SYNC_USERMAP_PLS: | ||||||
| 					/* | 					/* | ||||||
| 					 * Enable setgroups(2) if we've been asked to. But we also | 					 * Enable setgroups(2) if we've been asked to. But we also | ||||||
| @@ -759,7 +795,6 @@ void nsexec(void) | |||||||
| 			ready = false; | 			ready = false; | ||||||
| 			while (!ready) { | 			while (!ready) { | ||||||
| 				enum sync_t s; | 				enum sync_t s; | ||||||
| 				int ret; |  | ||||||
|  |  | ||||||
| 				syncfd = sync_grandchild_pipe[1]; | 				syncfd = sync_grandchild_pipe[1]; | ||||||
| 				close(sync_grandchild_pipe[0]); | 				close(sync_grandchild_pipe[0]); | ||||||
| @@ -774,12 +809,6 @@ void nsexec(void) | |||||||
| 					bail("failed to sync with child: next state"); | 					bail("failed to sync with child: next state"); | ||||||
|  |  | ||||||
| 				switch (s) { | 				switch (s) { | ||||||
| 				case SYNC_ERR: |  | ||||||
| 					/* We have to mirror the error code of the child. */ |  | ||||||
| 					if (read(syncfd, &ret, sizeof(ret)) != sizeof(ret)) |  | ||||||
| 						bail("failed to sync with child: read(error code)"); |  | ||||||
|  |  | ||||||
| 					exit(ret); |  | ||||||
| 				case SYNC_CHILD_READY: | 				case SYNC_CHILD_READY: | ||||||
| 					ready = true; | 					ready = true; | ||||||
| 					break; | 					break; | ||||||
|   | |||||||
							
								
								
									
										4
									
								
								vendor/github.com/opencontainers/runc/vendor.conf
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/opencontainers/runc/vendor.conf
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -6,8 +6,8 @@ github.com/opencontainers/runtime-spec 29686dbc5559d93fb1ef402eeda3e35c38d75af4 | |||||||
| github.com/checkpoint-restore/go-criu v3.11 | github.com/checkpoint-restore/go-criu v3.11 | ||||||
| github.com/mrunalp/fileutils ed869b029674c0e9ce4c0dfa781405c2d9946d08 | github.com/mrunalp/fileutils ed869b029674c0e9ce4c0dfa781405c2d9946d08 | ||||||
| github.com/opencontainers/selinux v1.2.2 | github.com/opencontainers/selinux v1.2.2 | ||||||
| github.com/seccomp/libseccomp-golang 84e90a91acea0f4e51e62bc1a75de18b1fc0790f | github.com/seccomp/libseccomp-golang v0.9.1 | ||||||
| github.com/sirupsen/logrus a3f95b5c423586578a4e099b11a46c2479628cac | github.com/sirupsen/logrus 8bdbc7bcc01dcbb8ec23dc8a28e332258d25251f | ||||||
| github.com/syndtr/gocapability db04d3cc01c8b54962a58ec7e491717d06cfcc16 | github.com/syndtr/gocapability db04d3cc01c8b54962a58ec7e491717d06cfcc16 | ||||||
| github.com/vishvananda/netlink 1e2e08e8a2dcdacaae3f14ac44c5cfa31361f270 | github.com/vishvananda/netlink 1e2e08e8a2dcdacaae3f14ac44c5cfa31361f270 | ||||||
| # systemd integration. | # systemd integration. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Michael Crosby
					Michael Crosby