From 9770a813630d41b549068c8da54e0c050f8da64e Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 17 Nov 2000 01:05:50 +0000 Subject: save and restore errno in select (This used to be commit 34f0379096d0701c74a51c51649ffe4cb1a24291) --- source3/lib/select.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'source3') diff --git a/source3/lib/select.c b/source3/lib/select.c index 8a3a629386..458642f57e 100644 --- a/source3/lib/select.c +++ b/source3/lib/select.c @@ -54,7 +54,7 @@ for file descriptors that were readable ********************************************************************/ int sys_select(int maxfd, fd_set *fds,struct timeval *tval) { - int ret; + int ret, saved_errno; if (initialised != sys_getpid()) { pipe(select_pipe); @@ -79,11 +79,15 @@ int sys_select(int maxfd, fd_set *fds,struct timeval *tval) } } + saved_errno = errno; + while (pipe_written != pipe_read) { char c; if (read(select_pipe[0], &c, 1) == 1) pipe_read++; } + errno = saved_errno; + return ret; } -- cgit