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: address@hidden
Subject: Re: libtool-symlist-name-null bug
Date: Tue, 30 Dec 2008 13:17:08 +0800



On Tue, Dec 30, 2008 at 3:30 AM, Ralf Wildenhues <address@hidden> wrote:
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?

The libltdl version is 2.2.4 -> libltdl.so.7
libtool version is 1.5.26.
 

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



--
Best Regards,
-- Lin.Yu


reply via email to

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