bug-libtool
[Top][All Lists]
Advanced

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

libtool-symlist-name-null bug


From: address@hidden
Subject: libtool-symlist-name-null bug
Date: Thu, 25 Dec 2008 10:35:06 +0800

Hi, libtool developers,

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.

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.
2053   while (lists)
2054     {
2055       const lt_dlsymlist *syms = lists->syms;
2056
2057       while (syms->name)
2058         {
2059           if (!syms->address && strcmp(syms->name, filename) == 0)
2060             {
2061               module = (lt_module) syms;
2062               goto done;
2063             }
2064           ++syms;
2065         }
2066
2067       lists = lists->next;
2068     }


--
Best Regards,
-- Lin.Yu

Attachment: libtool-symlist-name-null.patch
Description: Text Data


reply via email to

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