Web lists-archives.com

dlclose() vs fork()




Hello,
If the same DLL is dlopen()ed several times, dlclose() will actually
unload the DLL only after the same number of calls to dlclose().

This works fine in cygwin, until we add fork().

It looks like in the child process the counters of inherited DLLs are
set to 1, so the first dlclose() unloads it, causing segfault for
subsequent access to the unloaded code.
https://github.com/znc/znc/issues/1385#issuecomment-288014319 has a
working minimal example of this behavior.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple