fix an assert when forking

This commit is contained in:
Lennart Poettering 2010-01-27 05:30:58 +01:00
parent 1ea86b1803
commit 2da3263ab6

View File

@ -86,7 +86,7 @@ static int shift_fds(int fds[], unsigned n_fds) {
if ((nfd = fcntl(fds[i], F_DUPFD, i+3)) < 0)
return -errno;
assert_se(close_nointr(fds[i]));
assert_se(close_nointr(fds[i]) == 0);
fds[i] = nfd;
/* Hmm, the fd we wanted isn't free? Then
@ -112,7 +112,7 @@ int exec_spawn(const ExecCommand *command, const ExecContext *context, int *fds,
assert(ret);
assert(fds || n_fds <= 0);
log_debug("About to execute %s", command->path);
log_debug("about to execute %s", command->path);
if ((pid = fork()) < 0)
return -errno;
@ -193,6 +193,9 @@ int exec_spawn(const ExecCommand *command, const ExecContext *context, int *fds,
_exit(r);
}
log_debug("executed %s as %llu", command->path, (unsigned long long) pid);
*ret = pid;
return 0;
}