diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2023-04-01 22:48:14 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2023-04-05 00:52:56 +0900 |
commit | edd595f760ea8db26d3d7011857e5da1a232cced (patch) | |
tree | f696117e20d600b4e3e9e2c4b7b7d8955e4c101c /src/shared/specifier.c | |
parent | 319477f1b6db521ebc7c3db911ecb1a767a621aa (diff) | |
download | systemd-edd595f760ea8db26d3d7011857e5da1a232cced.tar.gz |
specifier: always convert missing machine-id file to EUNATCH
Then, use id128_get_machine().
Diffstat (limited to 'src/shared/specifier.c')
-rw-r--r-- | src/shared/specifier.c | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/shared/specifier.c b/src/shared/specifier.c index 65e555f716..a4a4017f06 100644 --- a/src/shared/specifier.c +++ b/src/shared/specifier.c @@ -187,19 +187,9 @@ int specifier_machine_id(char specifier, const void *data, const char *root, con assert(ret); - if (root) { - _cleanup_close_ int fd = -EBADF; - - fd = chase_and_open("/etc/machine-id", root, CHASE_PREFIX_ROOT, O_RDONLY|O_CLOEXEC|O_NOCTTY, NULL); - if (fd < 0) - /* Translate error for missing os-release file to EUNATCH. */ - return fd == -ENOENT ? -EUNATCH : fd; - - r = id128_read_fd(fd, ID128_FORMAT_PLAIN, &id); - } else - r = sd_id128_get_machine(&id); - if (r < 0) - return r; + r = id128_get_machine(root, &id); + if (r < 0) /* Translate error for missing /etc/machine-id file to EUNATCH. */ + return r == -ENOENT ? -EUNATCH : r; return specifier_id128(specifier, &id, root, userdata, ret); } |