From: Lennart Poettering Date: Fri, 22 Dec 2017 12:04:24 +0000 (+0100) Subject: fd-util: use close_nointr() return value instead of errno X-Git-Tag: v237~173^2~13 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e43bc9f5266c266ff4c84018a0d5f24bd1d125e4;p=platform%2Fupstream%2Fsystemd.git 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. --- diff --git a/src/basic/fd-util.c b/src/basic/fd-util.c index 284d029..404361e 100644 --- a/src/basic/fd-util.c +++ b/src/basic/fd-util.c @@ -227,20 +227,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 */ @@ -255,11 +256,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;