attach: report standard shell exit codes

POSIX mandates that on ENOEXEC 126 and on ENOENT 127 is supposed to be reported. Signed-off-by: 's avatarChristian Brauner <christian.brauner@ubuntu.com>
parent 06ff7fff
...@@ -1510,14 +1510,23 @@ int lxc_attach(const char *name, const char *lxcpath, ...@@ -1510,14 +1510,23 @@ int lxc_attach(const char *name, const char *lxcpath,
_exit(0); _exit(0);
} }
int lxc_attach_run_command(void* payload) int lxc_attach_run_command(void *payload)
{ {
lxc_attach_command_t* cmd = (lxc_attach_command_t*)payload; int ret = -1;
lxc_attach_command_t *cmd = payload;
execvp(cmd->program, cmd->argv); ret = execvp(cmd->program, cmd->argv);
if (ret < 0) {
switch (errno) {
case ENOEXEC:
ret = 126;
case ENOENT:
ret = 127;
}
}
SYSERROR("Failed to exec \"%s\"", cmd->program); SYSERROR("Failed to exec \"%s\"", cmd->program);
return -1; return ret;
} }
int lxc_attach_run_shell(void* payload) int lxc_attach_run_shell(void* payload)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment