summaryrefslogtreecommitdiff
path: root/src/basic
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2017-12-22 13:04:24 +0100
committerSven Eden <yamakuzure@gmx.net>2018-05-30 07:49:43 +0200
commit6b31c632bc5ce9b89031db22252443795ed576b7 (patch)
tree83c4240749aa2c245ad3da028c3256c27bebc20e /src/basic
parent8c7b0a29c7e93441438c6c7f0da49aa215c3295b (diff)
fd-util: use close_nointr() return value instead of errno
Our own calls return errors in their return values, hence use that rather than errno when checking errors.
Diffstat (limited to 'src/basic')
-rw-r--r--src/basic/fd-util.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/basic/fd-util.c b/src/basic/fd-util.c
index c694f4346..3e882287c 100644
--- a/src/basic/fd-util.c
+++ b/src/basic/fd-util.c
@@ -229,20 +229,21 @@ int close_all_fds(const int except[], unsigned n_except) {
assert_se(getrlimit(RLIMIT_NOFILE, &rl) >= 0);
for (fd = 3; fd < (int) rl.rlim_max; fd ++) {
+ int q;
if (fd_in_set(fd, except, n_except))
continue;
- if (close_nointr(fd) < 0)
- if (errno != EBADF && r == 0)
- r = -errno;
+ q = close_nointr(fd);
+ if (q < 0 && q != -EBADF && r >= 0)
+ r = q;
}
return r;
}
FOREACH_DIRENT(de, d, return -errno) {
- int fd = -1;
+ int fd = -1, q;
if (safe_atoi(de->d_name, &fd) < 0)
/* Let's better ignore this, just in case */
@@ -257,11 +258,9 @@ int close_all_fds(const int except[], unsigned n_except) {
if (fd_in_set(fd, except, n_except))
continue;
- if (close_nointr(fd) < 0) {
- /* Valgrind has its own FD and doesn't want to have it closed */
- if (errno != EBADF && r == 0)
- r = -errno;
- }
+ q = close_nointr(fd);
+ if (q < 0 && q != -EBADF && r >= 0) /* Valgrind has its own FD and doesn't want to have it closed */
+ r = q;
}
return r;