From 1ef95b99f6553b246729e7bb5bdc19038043db74 Mon Sep 17 00:00:00 2001 From: Alexander Turenko <alexander.turenko@tarantool.org> Date: Fri, 10 Apr 2020 04:35:27 +0300 Subject: [PATCH] popen: remove redundant fd check before perform IO The function already checks flags to find out whether the file descriptor should be available for reading / writing. When it is so, the corresponding fd is great or equal to zero. The further commits will add missed diagnostics for IO functions and it is hard to write a meaningful error message for a situation that is not possible. Moreover, we would obligated to document the error as one of possible failures in a function contract (while it can't occur). Part of #4031 Acked-by: Cyrill Gorcunov <gorcunov@gmail.com> --- src/lib/core/popen.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/lib/core/popen.c b/src/lib/core/popen.c index 514aaf0d79..90c3cabc88 100644 --- a/src/lib/core/popen.c +++ b/src/lib/core/popen.c @@ -193,8 +193,7 @@ handle_free(struct popen_handle *handle) * Test if the handle can run io operation. */ static inline bool -popen_may_io(struct popen_handle *handle, unsigned int idx, - unsigned int io_flags) +popen_may_io(struct popen_handle *handle, unsigned int io_flags) { if (!handle) { errno = ESRCH; @@ -206,11 +205,6 @@ popen_may_io(struct popen_handle *handle, unsigned int idx, return false; } - if (handle->ios[idx].fd < 0) { - errno = EPIPE; - return false; - } - return true; } @@ -293,7 +287,7 @@ popen_write_timeout(struct popen_handle *handle, const void *buf, return -1; } - if (!popen_may_io(handle, STDIN_FILENO, flags)) + if (!popen_may_io(handle, flags)) return -1; if (count > (size_t)SSIZE_MAX) { @@ -328,7 +322,7 @@ popen_read_timeout(struct popen_handle *handle, void *buf, return -1; } - if (!popen_may_io(handle, idx, flags)) + if (!popen_may_io(handle, flags)) return -1; if (count > (size_t)SSIZE_MAX) { -- GitLab