From 67a3328fbdecd1d81431cc6380de5b3f2d628def Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Thu, 6 Aug 2015 23:47:46 -0400 Subject: [PATCH 1/2] load-fragment: fix segv on parse error https://bugzilla.redhat.com/show_bug.cgi?id=1251334 --- src/core/load-fragment.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index ba73cc410e..299172123e 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -1986,7 +1986,7 @@ int config_parse_environ(const char *unit, return log_oom(); FOREACH_WORD_QUOTED(word, l, k, state) { - _cleanup_free_ char *n; + _cleanup_free_ char *n = NULL; char **x; r = cunescape_length(word, l, 0, &n); From 388a91b06473b13a59ba217d23b26ca3dc0f2555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 7 Aug 2015 00:06:15 -0400 Subject: [PATCH 2/2] man: clarify that unknown escapes must be escaped https://bugzilla.redhat.com/show_bug.cgi?id=1251334 is about a unit file which has Environment=TERM=linux PS1=system-upgrade:\w\$\x20 We used to allow that, but after recent tightening of parsing rules, we barf. Make it clear that this is intentional. --- man/systemd.service.xml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/man/systemd.service.xml b/man/systemd.service.xml index 4368ca8a19..7e96989583 100644 --- a/man/systemd.service.xml +++ b/man/systemd.service.xml @@ -922,7 +922,10 @@ the arguments. Double quotes ("...") and single quotes ('...') may be used, in which case everything until the next matching quote becomes part of the same argument. C-style escapes are also - supported, see table below. Quotes themselves are removed after + supported. The table below contains the list of allowed escape + patterns. Only patterns which match the syntax in the table are + allowed; others will result in an error, and must be escaped by + doubling the backslash. Quotes themselves are removed after parsing and escape sequences substituted. In addition, a trailing backslash (\) may be used to merge lines. @@ -939,7 +942,7 @@ &, and other elements of shell syntax are not supported. - The command to execute must an absolute path name. It may + The command to execute must be an absolute path name. It may contain spaces, but control characters are not allowed. The command line accepts % specifiers as