Hi,

Please revert (or fix) commit cb23d93c6845df3f2733a32caa4194e60ef871a7: 
   *: add/remove safe_, it seems we had a few incorrect uses

In addition to change safe_* it also changes the poll revents mask checks 
incorrectly.

It can make httpd hang, and busy poll in eternal loop.

From manpages:
      The  field  revents  is an output parameter, filled by the kernel with 
the events that actually occurred.  The
      bits returned in revents can include any of those specified in events, or 
one of the values POLLERR,  POLLHUP,
      or  POLLNVAL.   (These  three  bits  are meaningless in the events field, 
and will be set in the revents field
      whenever the corresponding condition is true.)

If one gets POLLHUP, it's now never handled in the httpd code, and poll will 
keep returning it all the time.

We really need to close fd when we get POLLERR or POLLHUP. Previously it lead 
to read() or write() which would
indicate error and lead to clean up. Now those are just ignored.

- Timo
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to