1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-11 09:18:07 +03:00

core/execute-serialize: use FOREACH_ARRAY more

This commit is contained in:
Mike Yuan 2023-10-14 06:01:11 +08:00
parent ccba67f494
commit 1c2d424e45
No known key found for this signature in database
GPG Key ID: 417471C0A40F58B3

View File

@ -1330,13 +1330,13 @@ static int exec_parameters_serialize(const ExecParameters *p, FILE *f, FDSet *fd
if (r < 0)
return r;
if (p->n_socket_fds) {
if (p->n_socket_fds > 0) {
r = serialize_item_format(f, "exec-parameters-n-socket-fds", "%zu", p->n_socket_fds);
if (r < 0)
return r;
}
if (p->n_storage_fds) {
if (p->n_storage_fds > 0) {
r = serialize_item_format(f, "exec-parameters-n-storage-fds", "%zu", p->n_storage_fds);
if (r < 0)
return r;
@ -1348,11 +1348,11 @@ static int exec_parameters_serialize(const ExecParameters *p, FILE *f, FDSet *fd
if (!p->fds)
return -EINVAL;
for (size_t i = 0; i < p->n_socket_fds + p->n_storage_fds; ++i) {
FOREACH_ARRAY(fd, p->fds, p->n_socket_fds + p->n_storage_fds) {
int copy = -EBADF;
if (p->fds[i] >= 0) {
copy = fdset_put_dup(fds, p->fds[i]);
if (*fd >= 0) {
copy = fdset_put_dup(fds, *fd);
if (copy < 0)
return copy;
}
@ -2118,20 +2118,20 @@ static int exec_context_serialize(const ExecContext *c, FILE *f) {
if (asprintf(&value, "%04o", c->directories[dt].mode) < 0)
return log_oom_debug();
for (size_t i = 0; i < c->directories[dt].n_items; i++) {
FOREACH_ARRAY(i, c->directories[dt].items, c->directories[dt].n_items) {
_cleanup_free_ char *path_escaped = NULL;
path_escaped = shell_escape(c->directories[dt].items[i].path, ":");
path_escaped = shell_escape(i->path, ":");
if (!path_escaped)
return log_oom_debug();
if (!strextend(&value, " ", path_escaped))
return log_oom_debug();
if (!strextend(&value, ":", yes_no(c->directories[dt].items[i].only_create)))
if (!strextend(&value, ":", yes_no(i->only_create)))
return log_oom_debug();
STRV_FOREACH(d, c->directories[dt].items[i].symlinks) {
STRV_FOREACH(d, i->symlinks) {
_cleanup_free_ char *link_escaped = NULL;
link_escaped = shell_escape(*d, ":");
@ -2368,8 +2368,8 @@ static int exec_context_serialize(const ExecContext *c, FILE *f) {
if (r < 0)
return r;
for (size_t j = 0; j < c->n_log_extra_fields; j++) {
r = serialize_item(f, "exec-context-log-extra-fields", c->log_extra_fields[j].iov_base);
FOREACH_ARRAY(field, c->log_extra_fields, c->n_log_extra_fields) {
r = serialize_item(f, "exec-context-log-extra-fields", field->iov_base);
if (r < 0)
return r;
}
@ -2450,40 +2450,39 @@ static int exec_context_serialize(const ExecContext *c, FILE *f) {
if (r < 0)
return r;
for (size_t i = 0; i < c->n_bind_mounts; i++) {
FOREACH_ARRAY(mount, c->bind_mounts, c->n_bind_mounts) {
_cleanup_free_ char *src_escaped = NULL, *dst_escaped = NULL;
src_escaped = shell_escape(c->bind_mounts[i].source, ":");
src_escaped = shell_escape(mount->source, ":");
if (!src_escaped)
return log_oom_debug();
dst_escaped = shell_escape(c->bind_mounts[i].destination, ":");
dst_escaped = shell_escape(mount->destination, ":");
if (!dst_escaped)
return log_oom_debug();
r = serialize_item_format(f,
c->bind_mounts[i].read_only ? "exec-context-bind-read-only-path" : "exec-context-bind-path",
mount->read_only ? "exec-context-bind-read-only-path" : "exec-context-bind-path",
"%s%s:%s:%s",
c->bind_mounts[i].ignore_enoent ? "-" : "",
mount->ignore_enoent ? "-" : "",
src_escaped,
dst_escaped,
c->bind_mounts[i].recursive ? "rbind" : "norbind");
mount->recursive ? "rbind" : "norbind");
if (r < 0)
return r;
}
for (size_t i = 0; i < c->n_temporary_filesystems; i++) {
const TemporaryFileSystem *t = c->temporary_filesystems + i;
FOREACH_ARRAY(tmpfs, c->temporary_filesystems, c->n_temporary_filesystems) {
_cleanup_free_ char *escaped = NULL;
if (!isempty(t->options)) {
escaped = shell_escape(t->options, ":");
if (!isempty(tmpfs->options)) {
escaped = shell_escape(tmpfs->options, ":");
if (!escaped)
return log_oom_debug();
}
r = serialize_item_format(f, "exec-context-temporary-filesystems", "%s%s%s",
t->path,
tmpfs->path,
isempty(escaped) ? "" : ":",
strempty(escaped));
if (r < 0)
@ -2642,25 +2641,25 @@ static int exec_context_serialize(const ExecContext *c, FILE *f) {
if (r < 0)
return r;
for (size_t i = 0; i < c->n_mount_images; i++) {
FOREACH_ARRAY(mount, c->mount_images, c->n_mount_images) {
_cleanup_free_ char *s = NULL, *source_escaped = NULL, *dest_escaped = NULL;
source_escaped = shell_escape(c->mount_images[i].source, " ");
source_escaped = shell_escape(mount->source, " ");
if (!source_escaped)
return log_oom_debug();
dest_escaped = shell_escape(c->mount_images[i].destination, " ");
dest_escaped = shell_escape(mount->destination, " ");
if (!dest_escaped)
return log_oom_debug();
s = strjoin(c->mount_images[i].ignore_enoent ? "-" : "",
s = strjoin(mount->ignore_enoent ? "-" : "",
source_escaped,
" ",
dest_escaped);
if (!s)
return log_oom_debug();
LIST_FOREACH(mount_options, o, c->mount_images[i].mount_options) {
LIST_FOREACH(mount_options, o, mount->mount_options) {
_cleanup_free_ char *escaped = NULL;
if (isempty(o->options))
@ -2683,19 +2682,19 @@ static int exec_context_serialize(const ExecContext *c, FILE *f) {
return r;
}
for (size_t i = 0; i < c->n_extension_images; i++) {
FOREACH_ARRAY(mount, c->extension_images, c->n_extension_images) {
_cleanup_free_ char *s = NULL, *source_escaped = NULL;
source_escaped = shell_escape(c->extension_images[i].source, ":");
source_escaped = shell_escape(mount->source, ":");
if (!source_escaped)
return log_oom_debug();
s = strjoin(c->extension_images[i].ignore_enoent ? "-" : "",
s = strjoin(mount->ignore_enoent ? "-" : "",
source_escaped);
if (!s)
return log_oom_debug();
LIST_FOREACH(mount_options, o, c->extension_images[i].mount_options) {
LIST_FOREACH(mount_options, o, mount->mount_options) {
_cleanup_free_ char *escaped = NULL;
if (isempty(o->options))