22e9bed03a
- Add systemctl-options.patch: handle SYSTEMCTL_OPTIONS internaly (bnc#798620). - Update crypt-loop-file.patch to correctly detect crypto loop files (bnc#799514). - Add journalctl-remove-leftover-message.patch: remove debug message in systemctl. - Add job-avoid-recursion-when-cancelling.patch: prevent potential recursion when cancelling a service. - Add sysctl-parse-all-keys.patch: ensure sysctl file is fully parsed. - Add journal-fix-cutoff-max-date.patch: fix computation of cutoff max date for journal. - Add reword-rescue-mode-hints.patch: reword rescue prompt. - Add improve-overflow-checks.patch: improve time overflow checks. - Add fix-swap-behaviour-with-symlinks.patch: fix swap behaviour with symlinks. - Add hostnamectl-fix-set-hostname-with-no-argument.patch: ensure hostnamectl requires an argument when called with set-hostname option. - Add agetty-overrides-term.patch: pass correctly terminal type to agetty. - Add check-for-empty-strings-in-strto-conversions.patch: better check for empty strings in strto* conversions. - Add strv-cleanup-error-path-loops.patch: cleanup strv on error path. - Add cryptsetup-handle-plain.patch: correctly handle "plain" option in cryptsetup. - Add fstab-generator-improve-error-message.patch: improve error message in fstab-generator. - Add delta-accept-t-option.patch: accept -t option in (forwarded request 149703 from fcrozat) OBS-URL: https://build.opensuse.org/request/show/149704 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/systemd?expand=0&rev=122
211 lines
7.6 KiB
Diff
211 lines
7.6 KiB
Diff
From c040936be2a4c77e9465cffae47d77d5ec14fb49 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
Date: Mon, 19 Nov 2012 16:02:45 +0100
|
|
Subject: [PATCH] core/load-fragment: be more precise in error messages
|
|
|
|
Whenever a message fails, mention the offending word, instead
|
|
of just giving the whole line. If one bad word causes just this
|
|
word to be rejected, print only the word. If one bad word causes
|
|
the whole line to be rejected, print the whole line too.
|
|
|
|
https://bugs.freedesktop.org/show_bug.cgi?id=56874
|
|
---
|
|
src/core/load-fragment.c | 69 +++++++++++++++++++++-------------------------
|
|
1 file changed, 31 insertions(+), 38 deletions(-)
|
|
|
|
diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
|
|
index 6759255..01f9484 100644
|
|
--- a/src/core/load-fragment.c
|
|
+++ b/src/core/load-fragment.c
|
|
@@ -86,7 +86,7 @@ int config_parse_unit_deps(
|
|
assert(rvalue);
|
|
|
|
FOREACH_WORD_QUOTED(w, l, rvalue, state) {
|
|
- char *t, *k;
|
|
+ char _cleanup_free_ *t = NULL, *k = NULL;
|
|
int r;
|
|
|
|
t = strndup(w, l);
|
|
@@ -94,15 +94,13 @@ int config_parse_unit_deps(
|
|
return -ENOMEM;
|
|
|
|
k = unit_name_printf(u, t);
|
|
- free(t);
|
|
if (!k)
|
|
return -ENOMEM;
|
|
|
|
r = unit_add_dependency_by_name(u, d, k, NULL, true);
|
|
if (r < 0)
|
|
- log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s", filename, line, k, strerror(-r));
|
|
-
|
|
- free(k);
|
|
+ log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s",
|
|
+ filename, line, k, strerror(-r));
|
|
}
|
|
|
|
return 0;
|
|
@@ -757,22 +755,25 @@ int config_parse_exec_cpu_affinity(
|
|
assert(data);
|
|
|
|
FOREACH_WORD_QUOTED(w, l, rvalue, state) {
|
|
- char *t;
|
|
+ char _cleanup_free_ *t = NULL;
|
|
int r;
|
|
unsigned cpu;
|
|
|
|
- if (!(t = strndup(w, l)))
|
|
+ t = strndup(w, l);
|
|
+ if (!t)
|
|
return -ENOMEM;
|
|
|
|
r = safe_atou(t, &cpu);
|
|
- free(t);
|
|
|
|
- if (!(c->cpuset))
|
|
- if (!(c->cpuset = cpu_set_malloc(&c->cpuset_ncpus)))
|
|
+ if (!c->cpuset) {
|
|
+ c->cpuset = cpu_set_malloc(&c->cpuset_ncpus);
|
|
+ if (!c->cpuset)
|
|
return -ENOMEM;
|
|
+ }
|
|
|
|
if (r < 0 || cpu >= c->cpuset_ncpus) {
|
|
- log_error("[%s:%u] Failed to parse CPU affinity, ignoring: %s", filename, line, rvalue);
|
|
+ log_error("[%s:%u] Failed to parse CPU affinity %s, ignoring: %s",
|
|
+ filename, line, t, rvalue);
|
|
return 0;
|
|
}
|
|
|
|
@@ -849,7 +850,8 @@ int config_parse_exec_secure_bits(
|
|
else if (first_word(w, "noroot-locked"))
|
|
c->secure_bits |= SECURE_NOROOT_LOCKED;
|
|
else {
|
|
- log_error("[%s:%u] Failed to parse secure bits, ignoring: %s", filename, line, rvalue);
|
|
+ log_error("[%s:%u] Failed to parse secure bits, ignoring: %s",
|
|
+ filename, line, rvalue);
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -890,7 +892,7 @@ int config_parse_bounding_set(
|
|
* interface. */
|
|
|
|
FOREACH_WORD_QUOTED(w, l, rvalue, state) {
|
|
- char *t;
|
|
+ char _cleanup_free_ *t = NULL;
|
|
int r;
|
|
cap_value_t cap;
|
|
|
|
@@ -899,10 +901,9 @@ int config_parse_bounding_set(
|
|
return -ENOMEM;
|
|
|
|
r = cap_from_name(t, &cap);
|
|
- free(t);
|
|
-
|
|
if (r < 0) {
|
|
- log_error("[%s:%u] Failed to parse capability bounding set, ignoring: %s", filename, line, rvalue);
|
|
+ log_error("[%s:%u] Failed to parse capability in bounding set, ignoring: %s",
|
|
+ filename, line, t);
|
|
continue;
|
|
}
|
|
|
|
@@ -968,7 +969,7 @@ int config_parse_unit_cgroup(
|
|
char *state;
|
|
|
|
FOREACH_WORD_QUOTED(w, l, rvalue, state) {
|
|
- char *t, *k;
|
|
+ char _cleanup_free_ *t = NULL, *k = NULL, *ku = NULL;
|
|
int r;
|
|
|
|
t = strndup(w, l);
|
|
@@ -976,22 +977,17 @@ int config_parse_unit_cgroup(
|
|
return -ENOMEM;
|
|
|
|
k = unit_full_printf(u, t);
|
|
- free(t);
|
|
-
|
|
if (!k)
|
|
return -ENOMEM;
|
|
|
|
- t = cunescape(k);
|
|
- free(k);
|
|
-
|
|
- if (!t)
|
|
+ ku = cunescape(k);
|
|
+ if (!ku)
|
|
return -ENOMEM;
|
|
|
|
- r = unit_add_cgroup_from_text(u, t);
|
|
- free(t);
|
|
-
|
|
+ r = unit_add_cgroup_from_text(u, ku);
|
|
if (r < 0) {
|
|
- log_error("[%s:%u] Failed to parse cgroup value, ignoring: %s", filename, line, rvalue);
|
|
+ log_error("[%s:%u] Failed to parse cgroup value %s, ignoring: %s",
|
|
+ filename, line, k, rvalue);
|
|
return 0;
|
|
}
|
|
}
|
|
@@ -1351,33 +1347,30 @@ int config_parse_service_sockets(
|
|
assert(data);
|
|
|
|
FOREACH_WORD_QUOTED(w, l, rvalue, state) {
|
|
- char *t, *k;
|
|
+ char _cleanup_free_ *t = NULL, *k = NULL;
|
|
|
|
t = strndup(w, l);
|
|
if (!t)
|
|
return -ENOMEM;
|
|
|
|
k = unit_name_printf(UNIT(s), t);
|
|
- free(t);
|
|
-
|
|
if (!k)
|
|
return -ENOMEM;
|
|
|
|
if (!endswith(k, ".socket")) {
|
|
- log_error("[%s:%u] Unit must be of type socket, ignoring: %s", filename, line, rvalue);
|
|
- free(k);
|
|
+ log_error("[%s:%u] Unit must be of type socket, ignoring: %s",
|
|
+ filename, line, k);
|
|
continue;
|
|
}
|
|
|
|
r = unit_add_two_dependencies_by_name(UNIT(s), UNIT_WANTS, UNIT_AFTER, k, NULL, true);
|
|
if (r < 0)
|
|
- log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s", filename, line, k, strerror(-r));
|
|
+ log_error("[%s:%u] Failed to add dependency on %s, ignoring: %s",
|
|
+ filename, line, k, strerror(-r));
|
|
|
|
r = unit_add_dependency_by_name(UNIT(s), UNIT_TRIGGERED_BY, k, NULL, true);
|
|
if (r < 0)
|
|
return r;
|
|
-
|
|
- free(k);
|
|
}
|
|
|
|
return 0;
|
|
@@ -2105,17 +2098,17 @@ int config_parse_syscall_filter(
|
|
|
|
FOREACH_WORD_QUOTED(w, l, rvalue, state) {
|
|
int id;
|
|
- char *t;
|
|
+ char _cleanup_free_ *t = NULL;
|
|
|
|
t = strndup(w, l);
|
|
if (!t)
|
|
return -ENOMEM;
|
|
|
|
id = syscall_from_name(t);
|
|
- free(t);
|
|
|
|
if (id < 0) {
|
|
- log_error("[%s:%u] Failed to parse syscall, ignoring: %s", filename, line, rvalue);
|
|
+ log_error("[%s:%u] Failed to parse syscall, ignoring: %s",
|
|
+ filename, line, t);
|
|
continue;
|
|
}
|
|
|
|
--
|
|
1.7.10.4
|
|
|