]> git.ipfire.org Git - ipfire-2.x.git/blob - src/patches/glibc/glibc-rh988931.patch
Merge branch 'bird' into next
[ipfire-2.x.git] / src / patches / glibc / glibc-rh988931.patch
1 commit e23fe25b33324a9ea992276c1a4f04127bf9ba4b
2 Author: Andreas Schwab <schwab@redhat.com>
3 Date: Sun Feb 20 07:24:56 2011 -0500
4
5 Move setting variable in relro data earlier in ld.so.
6
7 diff --git a/elf/rtld.c b/elf/rtld.c
8 index 8510380..174954b 100644
9 --- a/elf/rtld.c
10 +++ b/elf/rtld.c
11 @@ -2179,6 +2179,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
12 we need it in the memory handling later. */
13 GLRO(dl_initial_searchlist) = *GL(dl_ns)[LM_ID_BASE]._ns_main_searchlist;
14
15 + /* Remember the last search directory added at startup, now that
16 + malloc will no longer be the one from dl-minimal.c. */
17 + GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
18 +
19 if (prelinked)
20 {
21 if (main_map->l_info [ADDRIDX (DT_GNU_CONFLICT)] != NULL)
22 @@ -2298,9 +2302,8 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
23 lossage);
24 }
25
26 - /* Remember the last search directory added at startup, now that
27 - malloc will no longer be the one from dl-minimal.c. */
28 - GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
29 + /* Make sure no new search directories have been added. */
30 + assert (GLRO(dl_init_all_dirs) == GL(dl_all_dirs));
31
32 if (! prelinked && rtld_multiple_ref)
33 {