From: Ulrich Drepper Date: Fri, 9 Sep 2011 13:43:43 +0000 (-0400) Subject: Fill in real information in __dl_iterate_phdr X-Git-Tag: glibc-2.15~319 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=74718d13e4638ccc5922c2197b9088ff5fc00251;p=platform%2Fupstream%2Fglibc.git Fill in real information in __dl_iterate_phdr --- diff --git a/ChangeLog b/ChangeLog index b2293fc..0dcadb4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2011-09-09 Ulrich Drepper + + * elf/dl-iteratephdr.c (hidden_proto): Fill in data from the real + link map. + 2011-08-17 Andreas Jaeger * elf/sprof.c (load_shobj): Remove unused variable log_hashfraction. diff --git a/elf/dl-iteratephdr.c b/elf/dl-iteratephdr.c index 5f1c20d..45107a9 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 , 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;