summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/execute.c62
-rw-r--r--src/core/killall.c29
-rw-r--r--src/core/timer.c2
3 files changed, 38 insertions, 55 deletions
diff --git a/src/core/execute.c b/src/core/execute.c
index 47cc4311c1..d0faba5a85 100644
--- a/src/core/execute.c
+++ b/src/core/execute.c
@@ -1685,31 +1685,25 @@ static int setup_private_users(uid_t uid, gid_t gid) {
* child then writes the UID mapping, under full privileges. The parent waits for the child to finish and
* continues execution normally. */
- if (uid != 0 && uid_is_valid(uid)) {
- r = asprintf(&uid_map,
- "0 0 1\n" /* Map root → root */
- UID_FMT " " UID_FMT " 1\n", /* Map $UID → $UID */
- uid, uid);
- if (r < 0)
- return -ENOMEM;
- } else {
+ if (uid != 0 && uid_is_valid(uid))
+ asprintf(&uid_map,
+ "0 0 1\n" /* Map root → root */
+ UID_FMT " " UID_FMT " 1\n", /* Map $UID → $UID */
+ uid, uid);
+ else
uid_map = strdup("0 0 1\n"); /* The case where the above is the same */
- if (!uid_map)
- return -ENOMEM;
- }
+ if (!uid_map)
+ return -ENOMEM;
- if (gid != 0 && gid_is_valid(gid)) {
- r = asprintf(&gid_map,
- "0 0 1\n" /* Map root → root */
- GID_FMT " " GID_FMT " 1\n", /* Map $GID → $GID */
- gid, gid);
- if (r < 0)
- return -ENOMEM;
- } else {
+ if (gid != 0 && gid_is_valid(gid))
+ asprintf(&gid_map,
+ "0 0 1\n" /* Map root → root */
+ GID_FMT " " GID_FMT " 1\n", /* Map $GID → $GID */
+ gid, gid);
+ else
gid_map = strdup("0 0 1\n"); /* The case where the above is the same */
- if (!gid_map)
- return -ENOMEM;
- }
+ if (!gid_map)
+ return -ENOMEM;
/* Create a communication channel so that the parent can tell the child when it finished creating the user
* namespace. */
@@ -3102,7 +3096,7 @@ const char* exec_context_fdname(const ExecContext *c, int fd_index) {
int exec_context_named_iofds(Unit *unit, const ExecContext *c, const ExecParameters *p, int named_iofds[3]) {
unsigned i, targets;
- const char* stdio_fdname[3];
+ const char *stdio_fdname[3];
assert(c);
assert(p);
@@ -3115,32 +3109,18 @@ int exec_context_named_iofds(Unit *unit, const ExecContext *c, const ExecParamet
stdio_fdname[i] = exec_context_fdname(c, i);
for (i = 0; i < p->n_fds && targets > 0; i++)
- if (named_iofds[STDIN_FILENO] < 0 &&
- c->std_input == EXEC_INPUT_NAMED_FD &&
- stdio_fdname[STDIN_FILENO] &&
- streq(p->fd_names[i], stdio_fdname[STDIN_FILENO])) {
-
+ if (named_iofds[STDIN_FILENO] < 0 && c->std_input == EXEC_INPUT_NAMED_FD && stdio_fdname[STDIN_FILENO] && streq(p->fd_names[i], stdio_fdname[STDIN_FILENO])) {
named_iofds[STDIN_FILENO] = p->fds[i];
targets--;
-
- } else if (named_iofds[STDOUT_FILENO] < 0 &&
- c->std_output == EXEC_OUTPUT_NAMED_FD &&
- stdio_fdname[STDOUT_FILENO] &&
- streq(p->fd_names[i], stdio_fdname[STDOUT_FILENO])) {
-
+ } else if (named_iofds[STDOUT_FILENO] < 0 && c->std_output == EXEC_OUTPUT_NAMED_FD && stdio_fdname[STDOUT_FILENO] && streq(p->fd_names[i], stdio_fdname[STDOUT_FILENO])) {
named_iofds[STDOUT_FILENO] = p->fds[i];
targets--;
-
- } else if (named_iofds[STDERR_FILENO] < 0 &&
- c->std_error == EXEC_OUTPUT_NAMED_FD &&
- stdio_fdname[STDERR_FILENO] &&
- streq(p->fd_names[i], stdio_fdname[STDERR_FILENO])) {
-
+ } else if (named_iofds[STDERR_FILENO] < 0 && c->std_error == EXEC_OUTPUT_NAMED_FD && stdio_fdname[STDERR_FILENO] && streq(p->fd_names[i], stdio_fdname[STDERR_FILENO])) {
named_iofds[STDERR_FILENO] = p->fds[i];
targets--;
}
- return targets == 0 ? 0 : -ENOENT;
+ return (targets == 0 ? 0 : -ENOENT);
}
int exec_context_load_environment(Unit *unit, const ExecContext *c, char ***l) {
diff --git a/src/core/killall.c b/src/core/killall.c
index 7a9df546ee..b3aa22adc5 100644
--- a/src/core/killall.c
+++ b/src/core/killall.c
@@ -66,26 +66,29 @@ static bool ignore_proc(pid_t pid, bool warn_rootfs) {
if (count <= 0)
return true;
- /* Processes with argv[0][0] = '@' we ignore from the killing spree.
+ /* Processes with argv[0][0] = '@' we ignore from the killing
+ * spree.
*
* http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons */
- if (c != '@')
- return false;
-
- if (warn_rootfs &&
- pid_from_same_root_fs(pid) == 0) {
-
+ if (c == '@' && warn_rootfs) {
_cleanup_free_ char *comm = NULL;
+ r = pid_from_same_root_fs(pid);
+ if (r < 0)
+ return true;
+
get_process_comm(pid, &comm);
- log_notice("Process " PID_FMT " (%s) has been marked to be excluded from killing. It is "
- "running from the root file system, and thus likely to block re-mounting of the "
- "root file system to read-only. Please consider moving it into an initrd file "
- "system instead.", pid, strna(comm));
- }
+ if (r)
+ log_notice("Process " PID_FMT " (%s) has been marked to be excluded from killing. It is "
+ "running from the root file system, and thus likely to block re-mounting of the "
+ "root file system to read-only. Please consider moving it into an initrd file "
+ "system instead.", pid, strna(comm));
+ return true;
+ } else if (c == '@')
+ return true;
- return true;
+ return false;
}
static void wait_for_children(Set *pids, sigset_t *mask) {
diff --git a/src/core/timer.c b/src/core/timer.c
index d7441d638f..5ee14669d2 100644
--- a/src/core/timer.c
+++ b/src/core/timer.c
@@ -232,7 +232,7 @@ static void timer_dump(Unit *u, FILE *f, const char *prefix) {
if (v->base == TIMER_CALENDAR) {
_cleanup_free_ char *p = NULL;
- (void) calendar_spec_to_string(v->calendar_spec, &p);
+ calendar_spec_to_string(v->calendar_spec, &p);
fprintf(f,
"%s%s: %s\n",