closefd(_stderr);
}
- if (in->uid || in->gid) {
- setuid(in->uid);
- setgid(in->gid);
+ if (in->gid && setgid(in->gid)) {
+ ERROR("failed to set group id %d: %d (%s)\n", in->gid, errno, strerror(errno));
+ exit(127);
}
+ if (in->uid && setuid(in->uid)) {
+ ERROR("failed to set user id %d: %d (%s)\n", in->uid, errno, strerror(errno));
+ exit(127);
+ }
+
execvp(argv[0], argv);
exit(127);
}
{
void *i;
+ if (!in->valid)
+ return;
+
i = blobmsg_open_table(b, in->name);
blobmsg_add_u8(b, "running", in->proc.pending);
if (in->proc.pending)