This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug dynamic-link/11941] ld.so: Improper assert map->l_init_called in dlclose
- From: "fweimer at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Tue, 13 Dec 2016 13:33:44 +0000
- Subject: [Bug dynamic-link/11941] ld.so: Improper assert map->l_init_called in dlclose
- Auto-submitted: auto-generated
- References: <bug-11941-131@http.sourceware.org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=11941
Florian Weimer <fweimer at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |UNCONFIRMED
See Also| |https://bugzilla.redhat.com
| |/show_bug.cgi?id=1398370
Resolution|INVALID |---
Summary|destructor called after |ld.so: Improper assert
|shared library relelase |map->l_init_called in
|(crash in dl_close()) |dlclose
Ever confirmed|1 |0
--- Comment #3 from Florian Weimer <fweimer at redhat dot com> ---
The assertion is indeed invalid. We see it in current Fedora 25 with
gssntlmssp.
The triggering conditions appear to be as follow:
Application links against libkrb5.
libkrb5 dlopens a plugin DSO (gssntlmssp) with RTLD_NODELETE.
The plugin DSO is in turn linked against libkrb5.
The application exits.
The plugin DSO destructor runs.
The libkrb5 destructor runs, calling dlclose on the plugin DSO.
The assertion fires.
The cause appears to be that at “The plugin DSO destructor runs.”, the dynamic
linker resets the l_init_called flag to false. However, this execution trace
looks totally valid, and it is difficult to see how libkrb5 could do anything
else here.
Carlos and I think we just need to remove the assert.
--
You are receiving this mail because:
You are on the CC list for the bug.