On Mon, 09.03.15 15:11, daurnimator (q...@daurnimator.com) wrote:
Applied! Thanks!
(Usually we prefer commits with proper real name attributions, though...)
---
TODO| 2 --
man/tmpfiles.d.xml | 2 ++
src/tmpfiles/tmpfiles.c | 21 +++--
3 files changed, 9 insertions(+), 16 deletions(-)
diff --git a/TODO b/TODO
index 60efaaf..4d5e2b6 100644
--- a/TODO
+++ b/TODO
@@ -226,8 +226,6 @@ Features:
* exponential backoff in timesyncd and resolved when we cannot reach a server
-* tmpfiles: port to unquote_many_words(), similar to sysusers
-
* unquote_many_words() should probably be used by a lot of code that
currently uses FOREACH_WORD and friends. For example, most conf
parsing callbacks should use it.
diff --git a/man/tmpfiles.d.xml b/man/tmpfiles.d.xml
index 4bd0fcf..bc98d8b 100644
--- a/man/tmpfiles.d.xml
+++ b/man/tmpfiles.d.xml
@@ -118,6 +118,8 @@
d/run/user 0755 root root 10d -
L/tmp/foobar ---- /dev/null/programlisting
+paraFields may be enclosed within quotes and contain C-style
escapes./para
+
refsect2
titleType/title
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index 652fe5f..10c5a63 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -1506,23 +1506,25 @@ static int parse_line(const char *fname, unsigned
line, const char *buffer) {
_cleanup_(item_free_contents) Item i = {};
ItemArray *existing;
Hashmap *h;
-int r, c = -1, pos;
+int r, pos;
bool force = false, boot = false;
assert(fname);
assert(line = 1);
assert(buffer);
-r = sscanf(buffer,
- %ms %ms %ms %ms %ms %ms %n,
+r = unquote_many_words(buffer,
action,
path,
mode,
user,
group,
age,
- c);
-if (r 2) {
+ i.argument,
+ NULL);
+if (r 0)
+return log_error_errno(r, [%s:%u] Failed to parse line:
%m, fname, line);
+else if (r 2) {
log_error([%s:%u] Syntax error., fname, line);
return -EIO;
}
@@ -1559,15 +1561,6 @@ static int parse_line(const char *fname, unsigned
line, const char *buffer) {
return r;
}
-if (c = 0) {
-c += strspn(buffer+c, WHITESPACE);
-if (buffer[c] != 0 (buffer[c] != '-' || buffer[c+1] !=
0)) {
-i.argument = unquote(buffer+c, \);
-if (!i.argument)
-return log_oom();
-}
-}
-
switch (i.type) {
case CREATE_FILE:
--
2.3.1
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel
Lennart
--
Lennart Poettering, Red Hat
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel