diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c index d5ef796e522..88be591fe8b 100644 --- a/src/core/dbus-execute.c +++ b/src/core/dbus-execute.c @@ -1606,7 +1606,7 @@ int bus_set_transient_exec_command( if (!exec_chars) return -ENOMEM; - a = unit_concat_strv(c->argv, UNIT_ESCAPE_SPECIFIERS|UNIT_ESCAPE_EXEC_SYNTAX); + a = unit_concat_strv(c->argv, UNIT_ESCAPE_SPECIFIERS|UNIT_ESCAPE_EXEC_SYNTAX_ENV); if (!a) return -ENOMEM; @@ -1617,7 +1617,7 @@ int bus_set_transient_exec_command( const char *p; p = unit_escape_setting(c->path, - UNIT_ESCAPE_SPECIFIERS|UNIT_ESCAPE_EXEC_SYNTAX, &t); + UNIT_ESCAPE_SPECIFIERS|UNIT_ESCAPE_EXEC_SYNTAX_ENV, &t); if (!p) return -ENOMEM; diff --git a/src/core/unit.c b/src/core/unit.c index 2d47d9de8c0..a6a0328e4dd 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -4312,7 +4312,7 @@ static const char* unit_drop_in_dir(Unit *u, UnitWriteFlags flags) { const char* unit_escape_setting(const char *s, UnitWriteFlags flags, char **buf) { assert(s); - assert(!FLAGS_SET(flags, UNIT_ESCAPE_EXEC_SYNTAX | UNIT_ESCAPE_C)); + assert(!FLAGS_SET(flags, UNIT_ESCAPE_EXEC_SYNTAX_ENV | UNIT_ESCAPE_C)); assert(buf); _cleanup_free_ char *t = NULL; @@ -4334,7 +4334,7 @@ const char* unit_escape_setting(const char *s, UnitWriteFlags flags, char **buf) /* We either do C-escaping or shell-escaping, to additionally escape characters that we parse for * ExecStart= and friends, i.e. '$' and quotes. */ - if (flags & UNIT_ESCAPE_EXEC_SYNTAX) { + if (flags & UNIT_ESCAPE_EXEC_SYNTAX_ENV) { char *t2; t2 = strreplace(s, "$", "$$"); diff --git a/src/core/unit.h b/src/core/unit.h index 420405b2b77..ff29b785bbe 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -528,22 +528,22 @@ typedef struct UnitStatusMessageFormats { /* Flags used when writing drop-in files or transient unit files */ typedef enum UnitWriteFlags { /* Write a runtime unit file or drop-in (i.e. one below /run) */ - UNIT_RUNTIME = 1 << 0, + UNIT_RUNTIME = 1 << 0, /* Write a persistent drop-in (i.e. one below /etc) */ - UNIT_PERSISTENT = 1 << 1, + UNIT_PERSISTENT = 1 << 1, /* Place this item in the per-unit-type private section, instead of [Unit] */ - UNIT_PRIVATE = 1 << 2, + UNIT_PRIVATE = 1 << 2, - /* Apply specifier escaping before writing */ - UNIT_ESCAPE_SPECIFIERS = 1 << 3, + /* Apply specifier escaping */ + UNIT_ESCAPE_SPECIFIERS = 1 << 3, - /* Escape elements of ExecStart= syntax before writing */ - UNIT_ESCAPE_EXEC_SYNTAX = 1 << 4, + /* Escape elements of ExecStart= syntax, incl. prevention of variable expansion */ + UNIT_ESCAPE_EXEC_SYNTAX_ENV = 1 << 4, /* Apply C escaping before writing */ - UNIT_ESCAPE_C = 1 << 5, + UNIT_ESCAPE_C = 1 << 5, } UnitWriteFlags; /* Returns true if neither persistent, nor runtime storage is requested, i.e. this is a check invocation only */ diff --git a/src/test/test-core-unit.c b/src/test/test-core-unit.c index ea514a5c8c3..91e6cdd6a36 100644 --- a/src/test/test-core-unit.c +++ b/src/test/test-core-unit.c @@ -26,7 +26,7 @@ static void test_unit_escape_setting_one( assert_se(a == NULL); assert_se(t == s); - assert_se(t = unit_escape_setting(s, UNIT_ESCAPE_EXEC_SYNTAX, &b)); + assert_se(t = unit_escape_setting(s, UNIT_ESCAPE_EXEC_SYNTAX_ENV, &b)); assert_se(b_esc = cescape(t)); log_debug("%s: [%s] → [%s]", __func__, s_esc, b_esc); assert_se(b == NULL || streq(b, t)); @@ -71,7 +71,7 @@ static void test_unit_concat_strv_one( log_debug("%s: [%s] → [%s]", __func__, s_esc, a_esc); assert_se(streq(a, expected_none)); - assert_se(b = unit_concat_strv(s, UNIT_ESCAPE_EXEC_SYNTAX)); + assert_se(b = unit_concat_strv(s, UNIT_ESCAPE_EXEC_SYNTAX_ENV)); assert_se(b_esc = cescape(b)); log_debug("%s: [%s] → [%s]", __func__, s_esc, b_esc); assert_se(streq(b, expected_exec));