From: Mike Yuan Date: Thu, 30 Oct 2025 14:20:33 +0000 (+0100) Subject: core/execute: serialize fd_names only if there're fds to pass X-Git-Tag: v259-rc1~217^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f78e7ca7da3527863c3d7b310dbf2469cafcea8b;p=thirdparty%2Fsystemd.git core/execute: serialize fd_names only if there're fds to pass --- diff --git a/src/core/execute-serialize.c b/src/core/execute-serialize.c index b7667b00a71..e8bc55462d0 100644 --- a/src/core/execute-serialize.c +++ b/src/core/execute-serialize.c @@ -1105,11 +1105,11 @@ static int exec_parameters_serialize(const ExecParameters *p, const ExecContext r = serialize_fd_many(f, fds, "exec-parameters-fds", p->fds, p->n_socket_fds + p->n_storage_fds + p->n_extra_fds); if (r < 0) return r; - } - r = serialize_strv(f, "exec-parameters-fd-names", p->fd_names); - if (r < 0) - return r; + r = serialize_strv(f, "exec-parameters-fd-names", p->fd_names); + if (r < 0) + return r; + } if (p->flags != 0) { r = serialize_item_format(f, "exec-parameters-flags", "%u", (unsigned) p->flags); diff --git a/src/core/execute.c b/src/core/execute.c index db91bc0a58c..e0c0421a21e 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -487,7 +487,7 @@ int exec_spawn( assert(context); assert(params); assert(!params->fds || FLAGS_SET(params->flags, EXEC_PASS_FDS)); - assert(params->fds || (params->n_socket_fds + params->n_storage_fds + params->n_extra_fds == 0)); + assert(params->fds || (params->n_socket_fds + params->n_storage_fds + params->n_extra_fds == 0 && !params->fd_names)); assert(!params->files_env); /* We fill this field, ensure it comes NULL-initialized to us */ assert(ret);