Opened 19 years ago

Closed 18 years ago

Last modified 18 years ago

#103 closed defect (fixed)

libc: atexit() callbacks in dlls are called after dlclose()/DosFreeModule() on the DLL

Reported by: Yuri Dario Owned by: bird
Priority: normal Milestone: libc-0.6.2
Component: libc-backend Version: 0.6
Severity: normal Keywords: dlclose DosFreeModule atexit on_exit
Cc:

Description (last modified by bird)

Use atexit()/on_exit() to register a callback residing in a dynamically loaded DLL. Then unload the DLL. When exit() eventually is called, the application crashes because the callback code isn't there anylonger.

Attachments (1)

dll_exit.zip (39.2 KB ) - added by Yuri Dario 19 years ago.

Download all attachments as: .zip

Change History (8)

by Yuri Dario, 19 years ago

Attachment: dll_exit.zip added

comment:1 by kkkkoaaa, 18 years ago

Keep a good job up! http://quick-adult-links.com

comment:5 by bird, 18 years ago

Description: modified (diff)
Keywords: dlclose DosFreeModule atexit on_exit added
Severity: criticalnormal
Summary: Exit list handlers registered from dll are not released on DosFreeModulelibc: atexit() callbacks in dlls are called after dlclose()/DosFreeModule() on the DLL
Type: defect
Version: 0.6.10.6

comment:6 by bird, 18 years ago

Resolution: fixed
Status: newclosed

(In [2786]) Fixed problems with fork() and module loading/unloading. Fixes #76. Fixed atexit() and on_exit() problem with callbacks in unloaded DLLs. Fixes #103.

comment:7 by bird, 18 years ago

(In [2787]) Fixed problems with fork() and module loading/unloading. Fixes #76. Fixed atexit() and on_exit() problem with callbacks in unloaded DLLs. Fixes #103.

Note: See TracTickets for help on using tickets.