diff options
author | Ulrich Drepper <drepper@redhat.com> | 2006-11-09 16:12:22 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2006-11-09 16:12:22 +0000 |
commit | 2692deea65f13becedc2ce283fbc97a3c139f165 (patch) | |
tree | 121c160e88030e5cc5769233d73d9f577dce2996 /elf | |
parent | a9a6bf36c159dc0eda7fc9a9985fb737da4be07a (diff) | |
download | glibc-2692deea65f13becedc2ce283fbc97a3c139f165.tar.gz glibc-2692deea65f13becedc2ce283fbc97a3c139f165.tar.xz glibc-2692deea65f13becedc2ce283fbc97a3c139f165.zip |
* elf/dl-debug.c (_dl_debug_initialize): Check r->r_map for 0 cvs/fedora-glibc-20061109T1949
rather than r->r_brk. 2006-11-08 Jakub Jelinek <jakub@redhat.com> * elf/dl-load.c (decompose_rpath): Return bool rather than void. If l->l_name is on inhibit_rpath list, set sps->dirs to -1 and return false, otherwise return true. (cache_rpath): Return decompose_rpath return value. 2006-11-07 Jakub Jelinek <jakub@redhat.com> * include/libc-symbols.h (declare_symbol): Rename to... (declare_symbol_alias): ... this. Add ORIGINAL argument, imply strong_alias (ORIGINAL, SYMBOL) in asm to make sure it preceedes .size directive. * sysdeps/gnu/errlist-compat.awk: Adjust for declare_symbol_alias changes. * sysdeps/gnu/siglist.c: Likewise.
Diffstat (limited to 'elf')
-rw-r--r-- | elf/dl-debug.c | 2 | ||||
-rw-r--r-- | elf/dl-load.c | 31 |
2 files changed, 13 insertions, 20 deletions
diff --git a/elf/dl-debug.c b/elf/dl-debug.c index d00fe87fbb..2538364aec 100644 --- a/elf/dl-debug.c +++ b/elf/dl-debug.c @@ -54,7 +54,7 @@ _dl_debug_initialize (ElfW(Addr) ldbase, Lmid_t ns) else r = &GL(dl_ns)[ns]._ns_debug; - if (r->r_brk == 0 || ldbase != 0) + if (r->r_map == NULL || ldbase != 0) { /* Tell the debugger where to find the map of loaded objects. */ r->r_version = 1 /* R_DEBUG_VERSION XXX */; diff --git a/elf/dl-load.c b/elf/dl-load.c index ccbbf4fdd2..1650ef953a 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -511,7 +511,7 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep, } -static void +static bool internal_function decompose_rpath (struct r_search_path_struct *sps, const char *rpath, struct link_map *l, const char *what) @@ -546,19 +546,8 @@ decompose_rpath (struct r_search_path_struct *sps, { /* This object is on the list of objects for which the RUNPATH and RPATH must not be used. */ - result = calloc (1, sizeof *result); - if (result == NULL) - { - signal_error_cache: - errstring = N_("cannot create cache for search path"); - signal_error: - _dl_signal_error (ENOMEM, NULL, NULL, errstring); - } - - sps->dirs = result; - sps->malloced = 1; - - return; + sps->dirs = (void *) -1; + return false; } while (*inhp != '\0') @@ -588,7 +577,11 @@ decompose_rpath (struct r_search_path_struct *sps, result = (struct r_search_path_elem **) malloc ((nelems + 1 + 1) * sizeof (*result)); if (result == NULL) - goto signal_error_cache; + { + errstring = N_("cannot create cache for search path"); + signal_error: + _dl_signal_error (ENOMEM, NULL, NULL, errstring); + } fillin_rpath (copy, result, ":", 0, what, where); @@ -599,6 +592,7 @@ decompose_rpath (struct r_search_path_struct *sps, sps->dirs = result; /* The caller will change this value if we haven't used a real malloc. */ sps->malloced = 1; + return true; } /* Make sure cached path information is stored in *SP @@ -623,10 +617,9 @@ cache_rpath (struct link_map *l, } /* Make sure the cache information is available. */ - decompose_rpath (sp, (const char *) (D_PTR (l, l_info[DT_STRTAB]) - + l->l_info[tag]->d_un.d_val), - l, what); - return true; + return decompose_rpath (sp, (const char *) (D_PTR (l, l_info[DT_STRTAB]) + + l->l_info[tag]->d_un.d_val), + l, what); } |