diff --git a/man/systemd-machine-id-setup.xml b/man/systemd-machine-id-setup.xml index b879b40b99..62630fbcab 100644 --- a/man/systemd-machine-id-setup.xml +++ b/man/systemd-machine-id-setup.xml @@ -97,11 +97,12 @@ - + Takes a directory path as an argument. All paths will be - prefixed with the given alternate ROOT - path, including config search paths. + prefixed with the given alternate + root path, + including config search paths. diff --git a/src/core/machine-id-setup.c b/src/core/machine-id-setup.c index f3b1b318e1..43720d6289 100644 --- a/src/core/machine-id-setup.c +++ b/src/core/machine-id-setup.c @@ -36,6 +36,7 @@ #include "log.h" #include "virt.h" #include "fileio.h" +#include "path-util.h" static int shorten_uuid(char destination[36], const char *source) { unsigned i, j; @@ -160,14 +161,13 @@ int machine_id_setup(const char *root) { bool writable = false; struct stat st; char id[34]; /* 32 + \n + \0 */ - _cleanup_free_ char *etc_machine_id = NULL; - _cleanup_free_ char *run_machine_id = NULL; + char *etc_machine_id, *run_machine_id; - if (asprintf(&etc_machine_id, "%s/etc/machine-id", root) < 0) - return log_oom(); + etc_machine_id = strappenda(root, "/etc/machine-id"); + path_kill_slashes(etc_machine_id); - if (asprintf(&run_machine_id, "%s/run/machine-id", root) < 0) - return log_oom(); + run_machine_id = strappenda(root, "/run/machine-id"); + path_kill_slashes(run_machine_id); RUN_WITH_UMASK(0000) { /* We create this 0444, to indicate that this isn't really diff --git a/src/machine-id-setup/machine-id-setup-main.c b/src/machine-id-setup/machine-id-setup-main.c index a67d436dbd..1c933ce600 100644 --- a/src/machine-id-setup/machine-id-setup-main.c +++ b/src/machine-id-setup/machine-id-setup-main.c @@ -37,7 +37,7 @@ static int help(void) { "Initialize /etc/machine-id from a random source.\n\n" " -h --help Show this help\n" " --version Show package version\n" - " --root Filesystem root\n", + " --root=ROOT Filesystem root\n", program_invocation_short_name); return 0; @@ -87,7 +87,7 @@ static int parse_argv(int argc, char *argv[]) { } if (optind < argc) { - help(); + log_error("Extraneous arguments"); return -EINVAL; }