summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-06-26 16:23:18 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-06-27 10:54:37 +0200
commit9266f31e61b6b6bda7929911e8e3d2fc87587911 (patch)
tree4d119cfc7057b94e4e655aa9151c1ca3e02ae965
parente3b52014e2b3e5cfa1ddc23828b14a9fce3507b3 (diff)
downloadsystemd-9266f31e61b6b6bda7929911e8e3d2fc87587911.tar.gz
core: skip whitespace after "|" and "!" in the condition parser
We'd skip any whitespace immediately after "=", but then we'd treat whitespace that is between "|" or "!" and the value as significant. This is rather confusing, let's ignore it too.
-rw-r--r--src/core/load-fragment.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c
index 8e8f26b636..d88b9317e9 100644
--- a/src/core/load-fragment.c
+++ b/src/core/load-fragment.c
@@ -2587,13 +2587,13 @@ int config_parse_unit_condition_string(
return 0;
}
- trigger = rvalue[0] == '|';
+ trigger = *rvalue == '|';
if (trigger)
- rvalue++;
+ rvalue += 1 + strspn(rvalue + 1, WHITESPACE);
- negate = rvalue[0] == '!';
+ negate = *rvalue == '!';
if (negate)
- rvalue++;
+ rvalue += 1 + strspn(rvalue + 1, WHITESPACE);
r = unit_full_printf(u, rvalue, &s);
if (r < 0) {