[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#136707: Proposal: Debian should use symbol versions for libdb2, libdb3, libbdb4



On Tue, Mar 05, 2002 at 03:28:34PM -0500, Sam Hartman wrote:
> It seems fairly clear that nss modules are opened RTLD_LOCAL which is
> good.  Will run the application overrides nss dependencies test later
> today.
> 
> 
> I have not tested that nss modules are RTLD_LOCAL, simply looked at the glibc sources.

The nss module is loaded that way, but it's symbols can get satisfied by
those in the global table. E.g.

libnss-db is linked to db3 (and active in nsswitch.conf)

foo is linked to db2


foo is executed, so libdb2's symbols are loaded in the global namespace.
Sometime later in foo's execution, it calls getgrnam(), which cases
libnss-db to be loaded, and the linker gives priority to the already
available symbols and maps nss-db to db2. Instanct segv.

Libnss-db has to be recompiled against the newly versioned db2/db3
libraries.

Ben

-- 
 .----------=======-=-======-=========-----------=====------------=-=-----.
/       Ben Collins    --    Debian GNU/Linux    --    WatchGuard.com      \
`          bcollins@debian.org   --   Ben.Collins@watchguard.com           '
 `---=========------=======-------------=-=-----=-===-======-------=--=---'



Reply to: