X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystem-update-generator%2Fsystem-update-generator.c;h=00045150f61b30c333c1c13da2e563911357b861;hb=113b3fc1a8061f4a24dd0db74e9a3cd0083b2251;hp=13b8a0c426393819e2031d110a8a5587559503fe;hpb=c79bb9e4e2e5b96b2ae2c432bf8b0ff9674fce60;p=elogind.git diff --git a/src/system-update-generator/system-update-generator.c b/src/system-update-generator/system-update-generator.c index 13b8a0c42..00045150f 100644 --- a/src/system-update-generator/system-update-generator.c +++ b/src/system-update-generator/system-update-generator.c @@ -24,8 +24,6 @@ #include "log.h" #include "util.h" -#include "unit-name.h" -#include "path-util.h" /* * Implements the logic described in @@ -35,25 +33,19 @@ static const char *arg_dest = "/tmp"; static int generate_symlink(void) { - struct stat st; - char _cleanup_free_ *p = NULL; + const char *p = NULL; - if (lstat("/system-update", &st) < 0) { + if (laccess("/system-update", F_OK) < 0) { if (errno == ENOENT) return 0; - log_error("Failed to check for system update: %m"); + log_error_errno(errno, "Failed to check for system update: %m"); return -EINVAL; } - p = strappend(arg_dest, "/default.target"); - if (!p) - return log_oom(); - - if (symlink(SYSTEM_DATA_UNIT_PATH "/system-update.target", p) < 0) { - log_error("Failed to create symlink %s: %m", p); - return -errno; - } + p = strjoina(arg_dest, "/default.target"); + if (symlink(SYSTEM_DATA_UNIT_PATH "/system-update.target", p) < 0) + return log_error_errno(errno, "Failed to create symlink %s: %m", p); return 0; }