core: actually make "+" prefix in ReadOnlyPaths=, InaccessiblePaths=, ReadWritablePaths= work

5327c910d2 claimed to add support for "+"
for prefixing paths with the configured RootDirectory=. But actually it
only implemented it in the backend, it did not add support for it to the
configuration file parsers. Fix that now.
This commit is contained in:
Lennart Poettering
2017-02-07 11:22:05 +01:00
parent 5d997827e2
commit 20b7a0070c
3 changed files with 25 additions and 10 deletions
+7 -5
View File
@@ -1498,12 +1498,15 @@ int bus_exec_context_set_transient_property(
return r;
STRV_FOREACH(p, l) {
int offset;
if (!utf8_is_valid(*p))
const char *i = *p;
size_t offset;
if (!utf8_is_valid(i))
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid %s", name);
offset = **p == '-';
if (!path_is_absolute(*p + offset))
offset = i[0] == '-';
offset += i[offset] == '+';
if (!path_is_absolute(i + offset))
return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid %s", name);
}
@@ -1522,7 +1525,6 @@ int bus_exec_context_set_transient_property(
unit_write_drop_in_private_format(u, mode, name, "%s=", name);
} else {
r = strv_extend_strv(dirs, l, true);
if (r < 0)
return -ENOMEM;