about summary refs log tree commit diff
path: root/elf/dl-iteratephdr.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2011-09-09 09:43:43 -0400
committerUlrich Drepper <drepper@gmail.com>2011-09-09 09:43:43 -0400
commit74718d13e4638ccc5922c2197b9088ff5fc00251 (patch)
tree2b48c9415ad01b287af997abe723b5577e3f453f /elf/dl-iteratephdr.c
parent1e4bd093e664f2889c48e63714583ef06b90d5b9 (diff)
downloadglibc-74718d13e4638ccc5922c2197b9088ff5fc00251.tar.gz
glibc-74718d13e4638ccc5922c2197b9088ff5fc00251.tar.xz
glibc-74718d13e4638ccc5922c2197b9088ff5fc00251.zip
Fill in real information in __dl_iterate_phdr
Diffstat (limited to 'elf/dl-iteratephdr.c')
-rw-r--r--elf/dl-iteratephdr.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/elf/dl-iteratephdr.c b/elf/dl-iteratephdr.c
index 5f1c20d755..45107a9b6c 100644
--- a/elf/dl-iteratephdr.c
+++ b/elf/dl-iteratephdr.c
@@ -1,5 +1,5 @@
 /* Get loaded objects program headers.
-   Copyright (C) 2001-2004, 2006-2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2001-2004, 2006-2009, 2010, 2011 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2001.
 
@@ -62,16 +62,16 @@ __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info,
 
   for (l = GL(dl_ns)[ns]._ns_loaded; l != NULL; l = l->l_next)
     {
-      info.dlpi_addr = l->l_addr;
-      info.dlpi_name = l->l_name;
-      info.dlpi_phdr = l->l_phdr;
-      info.dlpi_phnum = l->l_phnum;
+      info.dlpi_addr = l->l_real->l_addr;
+      info.dlpi_name = l->l_real->l_name;
+      info.dlpi_phdr = l->l_real->l_phdr;
+      info.dlpi_phnum = l->l_real->l_phnum;
       info.dlpi_adds = GL(dl_load_adds);
       info.dlpi_subs = GL(dl_load_adds) - nloaded;
       info.dlpi_tls_data = NULL;
-      info.dlpi_tls_modid = l->l_tls_modid;
+      info.dlpi_tls_modid = l->l_real->l_tls_modid;
       if (info.dlpi_tls_modid != 0)
-	info.dlpi_tls_data = GLRO(dl_tls_get_addr_soft) (l);
+	info.dlpi_tls_data = GLRO(dl_tls_get_addr_soft) (l->l_real);
       ret = callback (&info, sizeof (struct dl_phdr_info), data);
       if (ret)
 	break;