about summary refs log tree commit diff
path: root/elf/rtld.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2004-02-28 17:56:22 +0000
committerUlrich Drepper <drepper@redhat.com>2004-02-28 17:56:22 +0000
commit49ad572a70b8aeb91e57483a11dd1b77e31c4468 (patch)
tree321e8f8c36e40206125e136031ad0f5ecdeb6431 /elf/rtld.c
parent4c771a3b260116c59e606a6ebd68702072836481 (diff)
downloadglibc-49ad572a70b8aeb91e57483a11dd1b77e31c4468.tar.gz
glibc-49ad572a70b8aeb91e57483a11dd1b77e31c4468.tar.xz
glibc-49ad572a70b8aeb91e57483a11dd1b77e31c4468.zip
Update.
	* elf/rtld.c (dl_main): Adjust l->l_ld of the vDSO by l->l_addr.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Only set
	GL(dl_sysinfo) if non-zero.
Diffstat (limited to 'elf/rtld.c')
-rw-r--r--elf/rtld.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/elf/rtld.c b/elf/rtld.c
index a6910e5161..87a86bed32 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -1246,6 +1246,7 @@ ERROR: ld.so: object '%s' from %s cannot be preloaded: ignored.\n",
 	  l->l_map_start = (ElfW(Addr)) GL(dl_sysinfo_dso);
 	  l->l_addr = l->l_map_start - l->l_addr;
 	  l->l_map_end += l->l_addr;
+	  l->l_ld = (void *) ((ElfW(Addr)) l->l_ld + l->l_addr);
 	  elf_get_dynamic_info (l, dyn_temp);
 	  _dl_setup_hash (l);
 	  l->l_relocated = 1;