You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by Todd Vierling <tv...@pobox.com> on 1998/12/05 01:11:54 UTC

mod_so/3493: os/unix/os.c dlclose()s objects before module cleanups are complete

>Number:         3493
>Category:       mod_so
>Synopsis:       os/unix/os.c dlclose()s objects before module cleanups are complete
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apache
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Fri Dec  4 16:20:01 PST 1998
>Last-Modified:
>Originator:     tv@pobox.com
>Organization:
apache
>Release:        1.3.3
>Environment:
NetBSD, any version from 1.0 on up.
>Description:
When a file is loaded via LoadFile or LoadModule on UN*X, it is
dlopen()ed into memory.  During cleanups (such as a CGI child calling
ap_cleanup_for_exec()), the dlclose() hooks are called, but in no
particular order with respect to other registered cleanup hooks.
This is bad, because a module which is loaded with LoadModule may
register cleanups that Apache attempts to run _after_ it has dlclose()d
that module.  This results in a hard to trace back SIGSEGV.
>How-To-Repeat:
See "mod_perl interfering with `regular' CGI?" recent thread on the
modperl list.  E-mail if you need further details.
>Fix:
Make sure all dlclose() hooks are run after ALL other cleanups are
run.
>Audit-Trail:
>Unformatted:
[In order for any reply to be added to the PR database, ]
[you need to include <ap...@Apache.Org> in the Cc line ]
[and leave the subject line UNCHANGED.  This is not done]
[automatically because of the potential for mail loops. ]
[If you do not include this Cc, your reply may be ig-   ]
[nored unless you are responding to an explicit request ]
[from a developer.                                      ]
[Reply only with text; DO NOT SEND ATTACHMENTS!         ]