diff options
Diffstat (limited to 'src/home')
-rw-r--r-- | src/home/homed-manager.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/home/homed-manager.c b/src/home/homed-manager.c index 84b5618671..258d2b16ed 100644 --- a/src/home/homed-manager.c +++ b/src/home/homed-manager.c @@ -1456,9 +1456,10 @@ static int manager_generate_key_pair(Manager *m) { return log_error_errno(errno, "Failed to move public key file into place: %m"); temp_public = mfree(temp_public); - if (rename(temp_private, "/var/lib/systemd/home/local.private") < 0) { - (void) unlink_noerrno("/var/lib/systemd/home/local.public"); /* try to remove the file we already created */ - return log_error_errno(errno, "Failed to move private key file into place: %m"); + r = RET_NERRNO(rename(temp_private, "/var/lib/systemd/home/local.private")); + if (r < 0) { + (void) unlink("/var/lib/systemd/home/local.public"); /* try to remove the file we already created */ + return log_error_errno(r, "Failed to move private key file into place: %m"); } temp_private = mfree(temp_private); |