subproc: save/restore errno when printing error message twice

This commit is contained in:
Robert Swiecki 2019-03-12 17:07:24 +01:00
parent 46f463a62c
commit 8059747016
2 changed files with 6 additions and 4 deletions

View File

@ -4,14 +4,14 @@ package nsjail;
enum Mode {
LISTEN = 0; /* Listening on a TCP port */
ONCE = 1; /* Running the command once only */
RERUN = 2; /* Re-executing the command (forever) */
ONCE = 1; /* Running the command once only */
RERUN = 2; /* Re-executing the command (forever) */
EXECVE = 3; /* Executing command w/o the supervisor */
}
/* Should be self explanatory */
enum LogLevel {
DEBUG = 0; /* Equivalent to the '-v' cmd-line option */
INFO = 1; /* Default level */
DEBUG = 0; /* Equivalent to the '-v' cmd-line option */
INFO = 1; /* Default level */
WARNING = 2; /* Equivalent to the '-q' cmd-line option */
ERROR = 3;
FATAL = 4;

View File

@ -435,9 +435,11 @@ bool runChild(nsjconf_t* nsjconf, int fd_in, int fd_out, int fd_err) {
close(child_fd);
if (pid == -1) {
if (flags & CLONE_NEWCGROUP) {
auto saved_errno = errno;
PLOG_E(
"nsjail tried to use the CLONE_NEWCGROUP clone flag, which is "
"supported under kernel versions >= 4.6 only. Try disabling this flag");
errno = saved_errno;
}
PLOG_E(
"clone(flags=%s) failed. You probably need root privileges if your system "