linamh/sys-libs/glibc/files/2.3.2/glibc-2.3.2-rtld-assert-fix.patch
2009-09-12 08:46:08 +00:00

24 lines
1.1 KiB
Diff

--- glibc-2.3.2/elf/rtld.c 2004-02-03 19:52:59.420623568 +0200
+++ glibc-2.3.2.rtld/elf/rtld.c 2004-02-03 19:53:20.505418192 +0200
@@ -1280,19 +1280,7 @@ of this helper program; chances are you
while (GL(dl_loaded)->l_searchlist.r_list[i] != &GL(dl_rtld_map))
++i;
GL(dl_rtld_map).l_prev = GL(dl_loaded)->l_searchlist.r_list[i - 1];
- if (__builtin_expect (mode, normal) == normal)
- GL(dl_rtld_map).l_next = (i + 1 < GL(dl_loaded)->l_searchlist.r_nlist
- ? GL(dl_loaded)->l_searchlist.r_list[i + 1]
- : NULL);
- else
- /* In trace mode there might be an invisible object (which we
- could not find) after the previous one in the search list.
- In this case it doesn't matter much where we put the
- interpreter object, so we just initialize the list pointer so
- that the assertion below holds. */
- GL(dl_rtld_map).l_next = GL(dl_rtld_map).l_prev->l_next;
-
- assert (GL(dl_rtld_map).l_prev->l_next == GL(dl_rtld_map).l_next);
+ GL(dl_rtld_map).l_next = GL(dl_rtld_map).l_prev->l_next;
GL(dl_rtld_map).l_prev->l_next = &GL(dl_rtld_map);
if (GL(dl_rtld_map).l_next != NULL)
{