Doug Graham wrote:
"inetd -e" does fix it for me, but LOG_NDELAY does not.

Thinking a bit more about this (I guess vfork is totally weird isn't a particularly satisfying answer),
and I think it probably goes something like this:

 - parent calls vfork
 - child running in shared address space calls closelog()
- closelog closes the fd in the child but also sets a global (shared) variable to -1 to indicate that the
   log descriptor is not open
- when parent is resumed after the child execs, it finds the global set to -1 and thinks the descriptor is not open. So it opens it again and sets the global to the new descriptor.

Conclusion: vfork is totally weird :-)

--Doug

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

Reply via email to