]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sysusers/tmpfiles: use --root=/ as way to force offline operation (i.e. without...
authorLennart Poettering <lennart@poettering.net>
Tue, 5 May 2020 20:48:50 +0000 (22:48 +0200)
committerLennart Poettering <lennart@poettering.net>
Thu, 7 May 2020 14:35:20 +0000 (16:35 +0200)
src/sysusers/sysusers.c
src/tmpfiles/tmpfiles.c

index 73a710bee7c492f4b16a422fde905b1db5a3d842..9a46c9fa6f3656140aeb562092e801badf0a4295 100644 (file)
@@ -1813,7 +1813,7 @@ static int parse_argv(int argc, char *argv[]) {
                         break;
 
                 case ARG_ROOT:
-                        r = parse_path_argument_and_warn(optarg, true, &arg_root);
+                        r = parse_path_argument_and_warn(optarg, /* suppress_root= */ false, &arg_root);
                         if (r < 0)
                                 return r;
                         break;
index 37dde99ef0b058981bbba4badd01859188e54051..9b42f73b8eba185df6df6297eaeb2a8422a4b66a 100644 (file)
@@ -2666,7 +2666,7 @@ static int parse_line(
 
         case COPY_FILES:
                 if (!i.argument) {
-                        i.argument = path_join(arg_root, "/usr/share/factory", i.path);
+                        i.argument = path_join("/usr/share/factory", i.path);
                         if (!i.argument)
                                 return log_oom();
 
@@ -2674,7 +2674,9 @@ static int parse_line(
                         *invalid_config = true;
                         return log_syntax(NULL, LOG_ERR, fname, line, SYNTHETIC_ERRNO(EBADMSG), "Source path '%s' is not absolute.", i.argument);
 
-                } else if (arg_root) {
+                }
+
+                if (!empty_or_root(arg_root)) {
                         char *p;
 
                         p = path_join(arg_root, i.argument);
@@ -2765,7 +2767,7 @@ static int parse_line(
                 return log_syntax(NULL, LOG_ERR, fname, line, r, "Failed to substitute specifiers in argument: %m");
         }
 
-        if (arg_root) {
+        if (!empty_or_root(arg_root)) {
                 char *p;
 
                 p = path_join(arg_root, i.path);
@@ -2993,7 +2995,7 @@ static int parse_argv(int argc, char *argv[]) {
                         break;
 
                 case ARG_ROOT:
-                        r = parse_path_argument_and_warn(optarg, true, &arg_root);
+                        r = parse_path_argument_and_warn(optarg, /* suppress_root= */ false, &arg_root);
                         if (r < 0)
                                 return r;
                         break;