static const char *arg_dest = "/tmp";
static int generate_symlink(void) {
- struct stat st;
- char *p;
+ const char *p = NULL;
- if (lstat("/system-update", &st) < 0) {
+ if (access("/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) {
- free(p);
- log_error("Failed to create symlink: %m");
- return -errno;
- }
-
- free(p);
+ p = strappenda(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;
}