skalibs

Mirror/fork of https://skarnet.org/software/skalibs/
git clone https://ccx.te2000.cz/git/skalibs
Log | Files | Refs | README | LICENSE

commit 9964840c291e46a0e001d930e2dd2fb0e1b16967
parent 4f0ff15709ee9f0f025858ac85ec21a9d955e88e
Author: Laurent Bercot <ska-skaware@skarnet.org>
Date:   Thu,  6 Jul 2023 14:54:18 +0000

 More jjk fixes

Signed-off-by: Laurent Bercot <ska@appnovation.com>

Diffstat:
Msrc/libstddjb/fd_ensure_open.c | 7++++---
Msrc/libunixonacid/open_appendatb.c | 8++++++--
Msrc/libunixonacid/open_readatb.c | 8++++++--
Msrc/libunixonacid/open_truncatb.c | 8++++++--
Msrc/libunixonacid/open_writeatb.c | 8++++++--
Msrc/libunixonacid/openc_appendatb.c | 8++++++--
Msrc/libunixonacid/openc_readatb.c | 8++++++--
Msrc/libunixonacid/openc_truncatb.c | 8++++++--
Msrc/libunixonacid/openc_writeatb.c | 8++++++--
9 files changed, 52 insertions(+), 19 deletions(-)

diff --git a/src/libstddjb/fd_ensure_open.c b/src/libstddjb/fd_ensure_open.c @@ -2,18 +2,19 @@ #include <errno.h> #include <fcntl.h> + #include <skalibs/djbunix.h> int fd_ensure_open (int fd, int w) { int dummy ; - if (fcntl(fd, F_GETFD, &dummy) < 0) + if (fcntl(fd, F_GETFD, &dummy) == -1) { int newfd ; if (errno != EBADF) return 0 ; newfd = open2("/dev/null", w ? O_WRONLY : O_RDONLY) ; - if (newfd < 0) return 0 ; - if (fd_move(fd, newfd) < 0) + if (newfd == -1) return 0 ; + if (fd_move(fd, newfd) == -1) { fd_close(newfd) ; return 0 ; diff --git a/src/libunixonacid/open_appendatb.c b/src/libunixonacid/open_appendatb.c @@ -6,7 +6,11 @@ int open_appendatb (int dirfd, char const *name) { int fd = open_appendat(dirfd, name) ; - if (fd < 0) return -1 ; - if (ndelay_off(fd) < 0) return -1 ; + if (fd == -1) return -1 ; + if (ndelay_off(fd) == -1) + { + fd_close(fd) ; + return -1 ; + } return fd ; } diff --git a/src/libunixonacid/open_readatb.c b/src/libunixonacid/open_readatb.c @@ -6,7 +6,11 @@ int open_readatb (int dirfd, char const *name) { int fd = open_readat(dirfd, name) ; - if (fd < 0) return -1 ; - if (ndelay_off(fd) < 0) return -1 ; + if (fd == -1) return -1 ; + if (ndelay_off(fd) == -1) + { + fd_close(fd) ; + return -1 ; + } return fd ; } diff --git a/src/libunixonacid/open_truncatb.c b/src/libunixonacid/open_truncatb.c @@ -6,7 +6,11 @@ int open_truncatb (int dirfd, char const *name) { int fd = open_truncat(dirfd, name) ; - if (fd < 0) return -1 ; - if (ndelay_off(fd) < 0) return -1 ; + if (fd == -1) return -1 ; + if (ndelay_off(fd) == -1) + { + fd_close(fd) ; + return -1 ; + } return fd ; } diff --git a/src/libunixonacid/open_writeatb.c b/src/libunixonacid/open_writeatb.c @@ -6,7 +6,11 @@ int open_writeatb (int dirfd, char const *name) { int fd = open_writeat(dirfd, name) ; - if (fd < 0) return -1 ; - if (ndelay_off(fd) < 0) return -1 ; + if (fd == -1) return -1 ; + if (ndelay_off(fd) == -1) + { + fd_close(fd) ; + return -1 ; + } return fd ; } diff --git a/src/libunixonacid/openc_appendatb.c b/src/libunixonacid/openc_appendatb.c @@ -6,7 +6,11 @@ int openc_appendatb (int dirfd, char const *name) { int fd = openc_appendat(dirfd, name) ; - if (fd < 0) return -1 ; - if (ndelay_off(fd) < 0) return -1 ; + if (fd == -1) return -1 ; + if (ndelay_off(fd) == -1) + { + fd_close(fd) ; + return -1 ; + } return fd ; } diff --git a/src/libunixonacid/openc_readatb.c b/src/libunixonacid/openc_readatb.c @@ -6,7 +6,11 @@ int openc_readatb (int dirfd, char const *name) { int fd = openc_readat(dirfd, name) ; - if (fd < 0) return -1 ; - if (ndelay_off(fd) < 0) return -1 ; + if (fd == -1) return -1 ; + if (ndelay_off(fd) == -1) + { + fd_close(fd) ; + return -1 ; + } return fd ; } diff --git a/src/libunixonacid/openc_truncatb.c b/src/libunixonacid/openc_truncatb.c @@ -6,7 +6,11 @@ int openc_truncatb (int dirfd, char const *name) { int fd = openc_truncat(dirfd, name) ; - if (fd < 0) return -1 ; - if (ndelay_off(fd) < 0) return -1 ; + if (fd == -1) return -1 ; + if (ndelay_off(fd) == -1) + { + fd_close(fd) ; + return -1 ; + } return fd ; } diff --git a/src/libunixonacid/openc_writeatb.c b/src/libunixonacid/openc_writeatb.c @@ -6,7 +6,11 @@ int openc_writeatb (int dirfd, char const *name) { int fd = openc_writeat(dirfd, name) ; - if (fd < 0) return -1 ; - if (ndelay_off(fd) < 0) return -1 ; + if (fd == -1) return -1 ; + if (ndelay_off(fd) == -1) + { + fd_close(fd) ; + return -1 ; + } return fd ; }