[PATCH] Don't try to free rpath strings allocated during startup
Andreas Schwab
schwab@redhat.com
Mon Sep 13 07:41:00 GMT 2010
The stub malloc from dl-minimal.c is used during all of startup until
ld.so is re-relocated, so the rpath string allocated so far cannot be
freed in the freeres routine.
Andreas.
2010-09-13 Andreas Schwab <schwab@redhat.com>
* elf/rtld.c (dl_main): Set GLRO(dl_init_all_dirs) just before
re-relocationg ld.so.
---
elf/rtld.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/elf/rtld.c b/elf/rtld.c
index 80fe0ab..2e266b1 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -2287,6 +2287,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.
--
1.7.2.2
--
Andreas Schwab, schwab@redhat.com
GPG Key fingerprint = D4E8 DBE3 3813 BB5D FA84 5EC7 45C6 250E 6F00 984E
"And now for something completely different."
More information about the Libc-hacker
mailing list