int ngids = 0, ngids_after_pam = 0;
int socket_fd = -EBADF, named_iofds[3] = EBADF_TRIPLET;
_cleanup_close_ int bpffs_socket_fd = -EBADF, bpffs_errno_pipe = -EBADF;
- size_t n_storage_fds, n_socket_fds, n_extra_fds;
+ size_t n_socket_fds, n_stashed_fds;
_cleanup_(pidref_done_sigkill_wait) PidRef bpffs_pidref = PIDREF_NULL;
assert(command);
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Got no socket.");
socket_fd = params->fds[0];
- n_storage_fds = n_socket_fds = n_extra_fds = 0;
+ n_socket_fds = n_stashed_fds = 0;
} else {
n_socket_fds = params->n_socket_fds;
- n_storage_fds = params->n_storage_fds;
- n_extra_fds = params->n_extra_fds;
+ n_stashed_fds = params->n_stashed_fds;
}
- n_fds = n_socket_fds + n_storage_fds + n_extra_fds;
+ n_fds = n_socket_fds + n_stashed_fds;
r = exec_context_named_iofds(context, params, named_iofds);
if (r < 0) {
return r;
}
- if (p->n_storage_fds > 0) {
- r = serialize_item_format(f, "exec-parameters-n-storage-fds", "%zu", p->n_storage_fds);
+ if (p->n_stashed_fds > 0) {
+ r = serialize_item_format(f, "exec-parameters-n-stashed-fds", "%zu", p->n_stashed_fds);
if (r < 0)
return r;
}
- if (p->n_extra_fds > 0) {
- r = serialize_item_format(f, "exec-parameters-n-extra-fds", "%zu", p->n_extra_fds);
- if (r < 0)
- return r;
- }
-
- r = serialize_fd_many(f, fds, "exec-parameters-fds", p->fds, p->n_socket_fds + p->n_storage_fds + p->n_extra_fds);
+ r = serialize_fd_many(f, fds, "exec-parameters-fds", p->fds, p->n_socket_fds + p->n_stashed_fds);
if (r < 0)
return r;
if (p->n_socket_fds > nr_open)
return -EINVAL; /* too many, someone is playing games with us */
- } else if ((val = startswith(l, "exec-parameters-n-storage-fds="))) {
- if (p->fds)
- return -EINVAL; /* Already received */
-
- r = safe_atozu(val, &p->n_storage_fds);
- if (r < 0)
- return r;
-
- if (p->n_storage_fds > nr_open)
- return -EINVAL; /* too many, someone is playing games with us */
- } else if ((val = startswith(l, "exec-parameters-n-extra-fds="))) {
+ } else if ((val = startswith(l, "exec-parameters-n-stashed-fds="))) {
if (p->fds)
return -EINVAL; /* Already received */
- r = safe_atozu(val, &p->n_extra_fds);
+ r = safe_atozu(val, &p->n_stashed_fds);
if (r < 0)
return r;
- if (p->n_extra_fds > nr_open)
+ if (p->n_stashed_fds > nr_open)
return -EINVAL; /* too many, someone is playing games with us */
} else if ((val = startswith(l, "exec-parameters-fds="))) {
- if (p->n_socket_fds + p->n_storage_fds + p->n_extra_fds == 0)
+ if (p->n_socket_fds + p->n_stashed_fds == 0)
return log_warning_errno(
SYNTHETIC_ERRNO(EINVAL),
"Got exec-parameters-fds= without "
- "prior exec-parameters-n-socket-fds= or exec-parameters-n-storage-fds= or exec-parameters-n-extra-fds=");
- if (p->n_socket_fds + p->n_storage_fds + p->n_extra_fds > nr_open)
+ "prior exec-parameters-n-socket-fds= or exec-parameters-n-stashed-fds=");
+ if (p->n_socket_fds + p->n_stashed_fds > nr_open)
return -EINVAL; /* too many, someone is playing games with us */
if (p->fds)
return -EINVAL; /* duplicated */
- p->fds = new(int, p->n_socket_fds + p->n_storage_fds + p->n_extra_fds);
+ p->fds = new(int, p->n_socket_fds + p->n_stashed_fds);
if (!p->fds)
return log_oom_debug();
/* Ensure we don't leave any FD uninitialized on error, it makes the fuzzer sad */
- FOREACH_ARRAY(i, p->fds, p->n_socket_fds + p->n_storage_fds + p->n_extra_fds)
+ FOREACH_ARRAY(i, p->fds, p->n_socket_fds + p->n_stashed_fds)
*i = -EBADF;
- r = deserialize_fd_many(fds, val, p->n_socket_fds + p->n_storage_fds + p->n_extra_fds, p->fds);
+ r = deserialize_fd_many(fds, val, p->n_socket_fds + p->n_stashed_fds, p->fds);
if (r < 0)
continue;
log_warning("Failed to parse serialized line, ignoring: %s", l);
}
- /* Bail out if we got exec-parameters-n-{socket/storage}-fds= but no corresponding
+ /* Bail out if we got exec-parameters-n-{socket/stashed}-fds= but no corresponding
* exec-parameters-fds= */
- if (p->n_socket_fds + p->n_storage_fds > 0 && !p->fds)
+ if (p->n_socket_fds + p->n_stashed_fds > 0 && !p->fds)
return -EINVAL;
return 0;
int **fds,
char ***fd_names,
size_t *n_socket_fds,
- size_t *n_storage_fds,
- size_t *n_extra_fds) {
+ size_t *n_stashed_fds) {
_cleanup_strv_free_ char **rfd_names = NULL;
_cleanup_free_ int *rfds = NULL;
assert(fds);
assert(fd_names);
assert(n_socket_fds);
- assert(n_storage_fds);
- assert(n_extra_fds);
+ assert(n_stashed_fds);
if (s->socket_fd >= 0) {
Socket *sock = ASSERT_PTR(SOCKET(UNIT_DEREF(s->accept_socket)));
*fds = TAKE_PTR(rfds);
*fd_names = TAKE_PTR(rfd_names);
*n_socket_fds = rn_socket_fds;
- *n_storage_fds = s->n_fd_store;
- *n_extra_fds = s->n_extra_fds;
+ *n_stashed_fds = s->n_fd_store + s->n_extra_fds;
return 0;
}
&exec_params.fds,
&exec_params.fd_names,
&exec_params.n_socket_fds,
- &exec_params.n_storage_fds,
- &exec_params.n_extra_fds);
+ &exec_params.n_stashed_fds);
if (r < 0)
return r;
exec_params.flags |= EXEC_PASS_FDS;
- log_unit_debug(UNIT(s), "Passing %zu fds to service", exec_params.n_socket_fds + exec_params.n_storage_fds + exec_params.n_extra_fds);
+ log_unit_debug(UNIT(s), "Passing %zu fds to service", exec_params.n_socket_fds + exec_params.n_stashed_fds);
}
if (!FLAGS_SET(exec_params.flags, EXEC_IS_CONTROL) && s->type == SERVICE_EXEC) {