Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#103 closed defect (fixed)

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

Reported by: ydario 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 ydario 13 years ago.

Download all attachments as: .zip

Change History (8)

Changed 13 years ago by ydario

comment:1 Changed 13 years ago by kkkkoaaa

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

comment:5 Changed 13 years ago by bird

  • Description modified (diff)
  • Keywords dlclose DosFreeModule atexit on_exit added
  • Severity changed from critical to normal
  • Summary changed from Exit list handlers registered from dll are not released on DosFreeModule to libc: atexit() callbacks in dlls are called after dlclose()/DosFreeModule() on the DLL
  • Type set to defect
  • Version changed from 0.6.1 to 0.6

comment:6 Changed 13 years ago by bird

  • Resolution set to fixed
  • Status changed from new to closed

(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 Changed 13 years ago by bird

(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.