summaryrefslogtreecommitdiff
path: root/elf
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@redhat.com>2010-09-15 07:20:57 -0700
committerUlrich Drepper <drepper@redhat.com>2010-09-15 07:20:57 -0700
commitbc5fb0374c3ce6eca92f44d13a55b066e707c4a0 (patch)
treeee07a8ffc9fbd9b51873dbd01da87da7b78a1b70 /elf
parente66e7419a6f58200eec6941b14e2dcff9875cc6c (diff)
downloadglibc-bc5fb0374c3ce6eca92f44d13a55b066e707c4a0.tar.gz
Don't try to free rpath strings allocated during startup
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-load.c3
-rw-r--r--elf/dl-support.c3
-rw-r--r--elf/rtld.c4
3 files changed, 7 insertions, 3 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index 0adddf5aaa..a7162eb77d 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -787,9 +787,6 @@ _dl_init_paths (const char *llp)
}
else
env_path_list.dirs = (void *) -1;
-
- /* Remember the last search directory added at startup. */
- GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
}
diff --git a/elf/dl-support.c b/elf/dl-support.c
index f94d2c4c6e..5897b32e8c 100644
--- a/elf/dl-support.c
+++ b/elf/dl-support.c
@@ -264,6 +264,9 @@ _dl_non_dynamic_init (void)
objects. */
_dl_init_paths (getenv ("LD_LIBRARY_PATH"));
+ /* Remember the last search directory added at startup. */
+ _dl_init_all_dirs = GL(dl_all_dirs);
+
_dl_lazy = *(getenv ("LD_BIND_NOW") ?: "") == '\0';
_dl_bind_not = *(getenv ("LD_BIND_NOT") ?: "") != '\0';
diff --git a/elf/rtld.c b/elf/rtld.c
index 90f3ff126e..5ecc4fe711 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -2291,6 +2291,10 @@ ERROR: ld.so: object '%s' cannot be loaded as audit interface: %s; ignored.\n",
lossage);
}
+ /* Remember the last search directory added at startup, now that
+ malloc will no longer be the one from dl-minimal.c. */
+ GLRO(dl_init_all_dirs) = GL(dl_all_dirs);
+
if (! prelinked && rtld_multiple_ref)
{
/* There was an explicit ref to the dynamic linker as a shared lib.