core:execute: fix fork() fail handling in exec_spawn()

If pid < 0 after fork(), 0 is always returned because r =
    exec_context_load_environment() has exited successfully.

    This will make the caller of exec_spawn() not able to handle
    the fork() error case and make systemd abort assert() possibly.
This commit is contained in:
lc85446 2015-11-26 11:46:40 +08:00 committed by Lennart Poettering
parent 59a99b2007
commit 74129a1276

View file

@ -2056,7 +2056,7 @@ int exec_spawn(Unit *unit,
NULL);
pid = fork();
if (pid < 0)
return log_unit_error_errno(unit, r, "Failed to fork: %m");
return log_unit_error_errno(unit, errno, "Failed to fork: %m");
if (pid == 0) {
int exit_status;