summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2013-10-15 08:23:10 +0000
committerKarolin Seeger <kseeger@samba.org>2013-10-28 11:01:01 +0100
commit3dfbea723553b268008063b280c808bb30951fdc (patch)
tree3ac8468e527d19017fdbdbc9154aa45cc8eb81d8
parent80a5575849c903a3cb4a9bd74f029e5b7c293aa3 (diff)
downloadsamba-3dfbea723553b268008063b280c808bb30951fdc.tar.gz
nsswitch: Fix short writes in winbind_write_sock
We set the socket to nonblocking and don't handle EAGAIN right. We do a poll anyway, so wait for writability, which should fix this. Bug: https://bugzilla.samba.org/show_bug.cgi?id=10195 Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org> (cherry picked from commit c6909887c26d4e827633acd50b11cf08c6aee0f7) Signed-off-by: Andreas Schneider <asn@samba.org>
-rw-r--r--nsswitch/wb_common.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/nsswitch/wb_common.c b/nsswitch/wb_common.c
index dcfc8a51568..3ba2bb5b2b0 100644
--- a/nsswitch/wb_common.c
+++ b/nsswitch/wb_common.c
@@ -392,9 +392,9 @@ static int winbind_write_sock(void *buffer, int count, int recursing,
call would not block by calling poll(). */
pfd.fd = winbindd_fd;
- pfd.events = POLLIN|POLLHUP;
+ pfd.events = POLLIN|POLLOUT|POLLHUP;
- ret = poll(&pfd, 1, 0);
+ ret = poll(&pfd, 1, -1);
if (ret == -1) {
winbind_close_sock();
return -1; /* poll error */