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;