|
|
|
|
@ -296,6 +296,18 @@ static bool invoker_send_prio(int fd, int prio)
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static bool invoker_send_ids(int fd, int uid, int gid)
|
|
|
|
|
{
|
|
|
|
|
// Send action.
|
|
|
|
|
invoke_send_msg(fd, INVOKER_MSG_IDS);
|
|
|
|
|
invoke_send_msg(fd, uid);
|
|
|
|
|
invoke_send_msg(fd, gid);
|
|
|
|
|
|
|
|
|
|
invoke_recv_ack(fd);
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static bool invoker_send_env(int fd)
|
|
|
|
|
{
|
|
|
|
|
int i, n_vars;
|
|
|
|
|
@ -418,6 +430,9 @@ static int invoke(int prog_argc, char **prog_argv, char *prog_name,
|
|
|
|
|
prog_prio = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int uid = getuid();
|
|
|
|
|
int gid = getgid();
|
|
|
|
|
|
|
|
|
|
int fd = invoker_init(app_type);
|
|
|
|
|
|
|
|
|
|
invoker_send_magic(fd, magic_options);
|
|
|
|
|
@ -425,6 +440,7 @@ static int invoke(int prog_argc, char **prog_argv, char *prog_name,
|
|
|
|
|
invoker_send_exec(fd, prog_name);
|
|
|
|
|
invoker_send_args(fd, prog_argc, prog_argv);
|
|
|
|
|
invoker_send_prio(fd, prog_prio);
|
|
|
|
|
invoker_send_ids(fd, uid, gid);
|
|
|
|
|
invoker_send_io(fd);
|
|
|
|
|
invoker_send_env(fd);
|
|
|
|
|
invoker_send_end(fd);
|
|
|
|
|
|