From 35c18a51f5d512c69388a7f76744597015950677 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 26 Aug 2022 10:12:29 +0200 Subject: 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. --- src/tmpfiles/tmpfiles.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/tmpfiles') 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; -- cgit v1.2.1