dlopen() calls exit() instead of returning error when module has unresolved symbols.

Oleg Girko ol at infoserver.ru
Sun Oct 9 21:58:56 UTC 2005


On Sunday 09 October 2005 07:08, Mike Frysinger wrote:

> On Saturday 08 October 2005 06:48 pm, Oleg Girko wrote:
> > I've found that dlopen() function in uClibc (version 0.9.28) works
> > incorrectly when called with RTLD_NOW flag and loadable module contains
> > unresolved symbols. Instead of returning NULL (and store error message to
> > be retrieved later by dlerror()), it outputs error message and calls
> > exit().
>
> hmm, try changing the calls to '_dl_exit()' in ldso/ldso/<ARCH>/elfinterp.c
> to just 'return 0'

Are you sure that it won't break loading shared libraries on startup?

I mean, dlopen() function is obviously broken. If this trivial fix solves the 
problem, why it's not already done? Are there more serious concerns which 
prevent dlopen() from being fixed this simple way?

-- Oleg Girko, http://www.infoserver.ru/~ol/



More information about the uClibc mailing list