summaryrefslogtreecommitdiff
path: root/src/tmpfiles
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2022-08-26 10:12:29 +0200
committerLennart Poettering <lennart@poettering.net>2022-08-26 11:11:48 +0200
commit35c18a51f5d512c69388a7f76744597015950677 (patch)
treea76337723fe199cf96102bd15ddf071917386487 /src/tmpfiles
parentce610af143b2a11011f00c65ea96f7a88453373b (diff)
downloadsystemd-35c18a51f5d512c69388a7f76744597015950677.tar.gz
tmpfiles: move validation/normalization of path before we use it
We need to normalize/validate the path (i.e. first column) of tmpfiles.d/ lines before we start using the path, otherwise we'll use it before it's known to be good. This matters since for some line types the path is mangled into the argument column (i.e. sevents column), and we should only do that once we know it's in a good state.
Diffstat (limited to 'src/tmpfiles')
-rw-r--r--src/tmpfiles/tmpfiles.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index 4bbf9b4ace..8012d0d5df 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -3082,6 +3082,14 @@ static int parse_line(
if (r < 0)
return r;
+ if (!path_is_absolute(i.path)) {
+ *invalid_config = true;
+ return log_syntax(NULL, LOG_ERR, fname, line, SYNTHETIC_ERRNO(EBADMSG),
+ "Path '%s' not absolute.", i.path);
+ }
+
+ path_simplify(i.path);
+
switch (i.type) {
case CREATE_DIRECTORY:
@@ -3238,14 +3246,6 @@ static int parse_line(
"Unknown command type '%c'.", (char) i.type);
}
- if (!path_is_absolute(i.path)) {
- *invalid_config = true;
- return log_syntax(NULL, LOG_ERR, fname, line, SYNTHETIC_ERRNO(EBADMSG),
- "Path '%s' not absolute.", i.path);
- }
-
- path_simplify(i.path);
-
if (!should_include_path(i.path))
return 0;