bug-libtool
[Top][All Lists]
Advanced

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

Re: libtool-symlist-name-null bug


From: Ralf Wildenhues
Subject: Re: libtool-symlist-name-null bug
Date: Mon, 29 Dec 2008 20:30:32 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

Hello Lin Yu,

* address@hidden wrote on Thu, Dec 25, 2008 at 03:35:06AM CET:
> 
> When I built pulseaudio with "--dlopen force", after that I found pulseaudio
> execution will cause a segment fault.
> In pulseaudio ltmain.sh, lt_preloaded_symbols is set to "{0,(void *)0}".
> 
> The problem is at libltdl/loaders/preopen.c.

Thanks for the bug report and patch.  Which Libtool/libltdl version did
you encounter the bug with?  Which libtool version was the module built
with?

Asking because Libtool 2.2.x should always have a non-NULL symlist->name
in the first entry of lt_preloaded_symbols; it should be the name of the
originator.

> address@hidden:~/libtool$ git diff
> diff --git a/libltdl/loaders/preopen.c b/libltdl/loaders/preopen.c
> index 7149287..e5b8c16 100644
> --- a/libltdl/loaders/preopen.c
> +++ b/libltdl/loaders/preopen.c
> @@ -335,6 +335,7 @@ lt_dlpreload_open (const char *originator,
> lt_dlpreload_callback_func *func)
>    /* For each symlist in the chain...  */
>    for (list = preloaded_symlists; list; list = list->next)
>      {
> +      if ( ! list->symlist->name ) continue;
>        /* ...that was preloaded by the requesting ORIGINATOR... */
>        if ((originator && streq (list->symlist->name, originator))
>            || (!originator && streq (list->symlist->name, "@PROGRAM@")))
> 
> 
> I checked the libtool-1.5.8, there is code block to check the same
> condition.

Yes; with that old version, I think symlist->name could be NULL.

Cheers,
Ralf




reply via email to

[Prev in Thread] Current Thread [Next in Thread]