diff --git a/src/core/execute.c b/src/core/execute.c index 9c1aa4cf98..f6c4b4676e 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;