On Fri, 24 Jan 2014, Darren Tucker wrote: > I'm stealing Damien's thunder here since he did most of the work > reproducing and figuring the out the problem, but since he seems to be > missing in action at the moment: we think we figured it out. > > Short answer: please try the patch below. > Index: atomicio.c > =================================================================== > RCS file: /home/dtucker/openssh/cvs/openssh/atomicio.c,v > retrieving revision 1.40 > diff -u -p -r1.40 atomicio.c > --- atomicio.c 24 Sep 2010 12:15:11 -0000 1.40 > +++ atomicio.c 24 Jan 2014 04:24:50 -0000 > @@ -57,7 +57,7 @@ atomicio6(ssize_t (*f) (int, void *, siz > struct pollfd pfd; > > pfd.fd = fd; > - pfd.events = f == read ? POLLIN : POLLOUT; > + pfd.events = f == vwrite ? POLLOUT : POLLIN; > while (n > pos) { > res = (f) (fd, s + pos, n - pos); > switch (res) { I changed that one and also the one in atomiciov6 and I'm still getting hangs. Actually, what I did was change one, got hangs, changed both, got hangs. There are previous errors that might be part of it, like the errors in malloc? I'm sure Damien's seen those, though. -- Hisashi T Fujinaka - htodd at twofifty.com BSEE(6/86) + BSChem(3/95) + BAEnglish(8/95) + MSCS(8/03) + $2.50 = latte