summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/execute.c17
-rw-r--r--src/escape/escape.c8
-rw-r--r--src/resolve/resolved-manager.c3
-rw-r--r--src/systemctl/systemctl.c6
-rw-r--r--src/update-done/update-done.c2
-rw-r--r--src/update-utmp/update-utmp.c6
6 files changed, 29 insertions, 13 deletions
diff --git a/src/core/execute.c b/src/core/execute.c
index e02a55e222..16aa4b3018 100644
--- a/src/core/execute.c
+++ b/src/core/execute.c
@@ -6281,8 +6281,13 @@ int exec_runtime_deserialize_one(Manager *m, const char *value, FDSet *fds) {
n = strcspn(v, " ");
buf = strndupa(v, n);
- if (safe_atoi(buf, &fdpair[0]) < 0 || !fdset_contains(fds, fdpair[0]))
- return log_debug("Unable to process exec-runtime netns fd specification.");
+
+ r = safe_atoi(buf, &fdpair[0]);
+ if (r < 0)
+ return log_debug_errno(r, "Unable to parse exec-runtime specification netns-socket-0=%s: %m", buf);
+ if (!fdset_contains(fds, fdpair[0]))
+ return log_debug_errno(SYNTHETIC_ERRNO(EBADF),
+ "exec-runtime specification netns-socket-0= refers to unknown fd %d: %m", fdpair[0]);
fdpair[0] = fdset_remove(fds, fdpair[0]);
if (v[n] != ' ')
goto finalize;
@@ -6295,8 +6300,12 @@ int exec_runtime_deserialize_one(Manager *m, const char *value, FDSet *fds) {
n = strcspn(v, " ");
buf = strndupa(v, n);
- if (safe_atoi(buf, &fdpair[1]) < 0 || !fdset_contains(fds, fdpair[1]))
- return log_debug("Unable to process exec-runtime netns fd specification.");
+ r = safe_atoi(buf, &fdpair[1]);
+ if (r < 0)
+ return log_debug_errno(r, "Unable to parse exec-runtime specification netns-socket-1=%s: %m", buf);
+ if (!fdset_contains(fds, fdpair[0]))
+ return log_debug_errno(SYNTHETIC_ERRNO(EBADF),
+ "exec-runtime specification netns-socket-1= refers to unknown fd %d: %m", fdpair[1]);
fdpair[1] = fdset_remove(fds, fdpair[1]);
}
diff --git a/src/escape/escape.c b/src/escape/escape.c
index 0c543a90f6..3f3dc0a894 100644
--- a/src/escape/escape.c
+++ b/src/escape/escape.c
@@ -211,14 +211,16 @@ static int run(int argc, char *argv[]) {
if (r < 0)
return log_error_errno(r, "Failed to extract instance: %m");
if (isempty(name))
- return log_error("Unit %s is missing the instance name.", *i);
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
+ "Unit %s is missing the instance name.", *i);
r = unit_name_template(*i, &template);
if (r < 0)
return log_error_errno(r, "Failed to extract template: %m");
if (arg_template && !streq(arg_template, template))
- return log_error("Unit %s template %s does not match specified template %s.",
- *i, template, arg_template);
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
+ "Unit %s template %s does not match specified template %s.",
+ *i, template, arg_template);
} else {
name = strdup(*i);
if (!name)
diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c
index ddd336b489..fc3ab98cd6 100644
--- a/src/resolve/resolved-manager.c
+++ b/src/resolve/resolved-manager.c
@@ -350,7 +350,8 @@ static int determine_hostname(char **full_hostname, char **llmnr_hostname, char
#if HAVE_LIBIDN2
r = idn2_to_unicode_8z8z(label, &utf8, 0);
if (r != IDN2_OK)
- return log_error("Failed to undo IDNA: %s", idn2_strerror(r));
+ return log_error_errno(SYNTHETIC_ERRNO(EUCLEAN),
+ "Failed to undo IDNA: %s", idn2_strerror(r));
assert(utf8_is_valid(utf8));
r = strlen(utf8);
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index e22efb92ac..f23bc6b234 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -2086,8 +2086,10 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat
if (streq(key, "systemd.unit")) {
if (proc_cmdline_value_missing(key, value))
return 0;
- if (!unit_name_is_valid(value, UNIT_NAME_PLAIN|UNIT_NAME_INSTANCE))
- return log_warning("Unit name specified on %s= is not valid, ignoring: %s", key, value);
+ if (!unit_name_is_valid(value, UNIT_NAME_PLAIN|UNIT_NAME_INSTANCE)) {
+ log_warning("Unit name specified on %s= is not valid, ignoring: %s", key, value);
+ return 0;
+ }
return free_and_strdup_warn(ret, key);
diff --git a/src/update-done/update-done.c b/src/update-done/update-done.c
index c001802dc9..e9d589e0e5 100644
--- a/src/update-done/update-done.c
+++ b/src/update-done/update-done.c
@@ -31,7 +31,7 @@ static int apply_timestamp(const char *path, struct timespec *ts) {
r = write_string_file_atomic_label_ts(path, message, ts);
if (r == -EROFS)
- return log_debug("Cannot create \"%s\", file system is read-only.", path);
+ return log_debug_errno(r, "Cannot create \"%s\", file system is read-only.", path);
if (r < 0)
return log_error_errno(r, "Failed to write \"%s\": %m", path);
return 0;
diff --git a/src/update-utmp/update-utmp.c b/src/update-utmp/update-utmp.c
index 47354d5012..4ab90a63ed 100644
--- a/src/update-utmp/update-utmp.c
+++ b/src/update-utmp/update-utmp.c
@@ -187,8 +187,10 @@ static int on_runlevel(Context *c) {
runlevel = get_current_runlevel(c);
if (runlevel < 0)
return runlevel;
- if (runlevel == 0)
- return log_warning("Failed to get new runlevel, utmp update skipped.");
+ if (runlevel == 0) {
+ log_warning("Failed to get new runlevel, utmp update skipped.");
+ return 0;
+ }
if (previous == runlevel)
return 0;