summaryrefslogtreecommitdiffstats
path: root/src/basic/fileio.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-10-02 13:34:05 +0200
committerLennart Poettering <lennart@poettering.net>2018-10-02 16:11:10 +0200
commiteaa680c09e5701a62e8ac819211e5969eda84f2d (patch)
tree777c5a2a285fb89c2a07a1c0c855dd4bee407a75 /src/basic/fileio.c
parentbus-unit-util: fix parsing of IPAddress{Allow,Deny} (diff)
downloadsystemd-eaa680c09e5701a62e8ac819211e5969eda84f2d.tar.xz
systemd-eaa680c09e5701a62e8ac819211e5969eda84f2d.zip
fileio: fix error propagation in link_tmpfile()
Diffstat (limited to 'src/basic/fileio.c')
-rw-r--r--src/basic/fileio.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/basic/fileio.c b/src/basic/fileio.c
index ea607f8cfb..d2fd4c47b3 100644
--- a/src/basic/fileio.c
+++ b/src/basic/fileio.c
@@ -1492,6 +1492,7 @@ int open_serialization_fd(const char *ident) {
}
int link_tmpfile(int fd, const char *path, const char *target) {
+ int r;
assert(fd >= 0);
assert(target);
@@ -1504,8 +1505,9 @@ int link_tmpfile(int fd, const char *path, const char *target) {
* operation currently (renameat2() does), and there is no nice way to emulate this. */
if (path) {
- if (rename_noreplace(AT_FDCWD, path, AT_FDCWD, target) < 0)
- return -errno;
+ r = rename_noreplace(AT_FDCWD, path, AT_FDCWD, target);
+ if (r < 0)
+ return r;
} else {
char proc_fd_path[STRLEN("/proc/self/fd/") + DECIMAL_STR_MAX(fd) + 1];