From 57aaafd6a9d5a27d457259f82511de52989445c0 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Tue, 15 Oct 2013 08:23:10 +0000 Subject: [PATCH] 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 Reviewed-by: Andreas Schneider (cherry picked from commit c6909887c26d4e827633acd50b11cf08c6aee0f7) Signed-off-by: Andreas Schneider --- nsswitch/wb_common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nsswitch/wb_common.c b/nsswitch/wb_common.c index dcfc8a5..3ba2bb5 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 */ -- 1.8.4