Don't try to free rpath strings allocated during startup

This commit is contained in:
Andreas Schwab 2010-09-15 07:20:57 -07:00 committed by Ulrich Drepper
parent e66e7419a6
commit bc5fb0374c
4 changed files with 17 additions and 3 deletions

View File

@ -1,3 +1,13 @@
2010-09-13 Andreas Schwab <schwab@redhat.com>
Ulrich Drepper <drepper@redhat.com>
* elf/rtld.c (dl_main): Set GLRO(dl_init_all_dirs) just before
re-relocationg ld.so.
* elf/dl-support.c (_dl_non_dynamic_init): And here after the
_dl_init_paths call.
* elf/dl-load.c (_dl_init_paths). Don't set GLRO(dl_init_all_dirs)
here anymore.
2010-09-14 Ulrich Drepper <drepper@redhat.com>
* resolv/res_init.c (__res_vinit): Count the default server we added.

View File

@ -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);
}

View File

@ -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';

View File

@ -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.