From: Aggelos Avgerinos Date: Mon, 8 May 2017 23:09:22 +0000 (+0300) Subject: execute: Properly log errors considering socket fds (#5910) X-Git-Tag: v234~237 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=488ab41cb89828e68162f34fb68241bbda700c05;p=thirdparty%2Fsystemd.git execute: Properly log errors considering socket fds (#5910) Till now if the params->n_fds was 0, systemd was logging that there were more than one sockets. Thanks @gregoryp and @VFXcode who did the most work debugging this. --- diff --git a/src/core/execute.c b/src/core/execute.c index 9c1aa4cf98b..f6c4b4676ed 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -2927,11 +2927,16 @@ int exec_spawn(Unit *unit, context->std_output == EXEC_OUTPUT_SOCKET || context->std_error == EXEC_OUTPUT_SOCKET) { - if (params->n_fds != 1) { + if (params->n_fds > 1) { log_unit_error(unit, "Got more than one socket."); return -EINVAL; } + if (params->n_fds == 0) { + log_unit_error(unit, "Got no socket."); + return -EINVAL; + } + socket_fd = params->fds[0]; } else { socket_fd = -1;