summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/select.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/source3/lib/select.c b/source3/lib/select.c
index c654a4a02c..396ecb5dd6 100644
--- a/source3/lib/select.c
+++ b/source3/lib/select.c
@@ -98,7 +98,10 @@ int sys_select(int maxfd, fd_set *fds,struct timeval *tval)
while (pipe_written != pipe_read) {
char c;
- if (read(select_pipe[0], &c, 1) == 1) pipe_read++;
+ /* Due to the linux kernel bug in 2.0.x, we
+ * always increment here even if the read failed... */
+ read(select_pipe[0], &c, 1);
+ pipe_read++;
}
errno = saved_errno;