diff options
author | Jakub Jelinek <jakub@redhat.com> | 2004-10-18 11:56:08 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2004-10-18 11:56:08 +0000 |
commit | 1670c7cf0d06b82b064ae37f4c47a9b9692935f2 (patch) | |
tree | 31d9484958d5ddc6902223b54d59650683c464ad /malloc | |
parent | be221e8df92045dd7175f127d2263ca435336c53 (diff) | |
download | glibc-1670c7cf0d06b82b064ae37f4c47a9b9692935f2.tar glibc-1670c7cf0d06b82b064ae37f4c47a9b9692935f2.tar.gz glibc-1670c7cf0d06b82b064ae37f4c47a9b9692935f2.tar.bz2 glibc-1670c7cf0d06b82b064ae37f4c47a9b9692935f2.zip |
* malloc/arena.c (ptmalloc_init): Don't use brk if dlopenedcvs/fedora-glibc-2_3_3-69
from statically linked program and avoid calling _dl_addr in that
case.
Diffstat (limited to 'malloc')
-rw-r--r-- | malloc/arena.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/malloc/arena.c b/malloc/arena.c index 9018a4f0e9..02e88a391e 100644 --- a/malloc/arena.c +++ b/malloc/arena.c @@ -429,10 +429,16 @@ ptmalloc_init (void) main_arena.next = &main_arena; #if defined _LIBC && defined SHARED - /* In case this libc copy is in a non-default namespace, never use brk. */ + /* In case this libc copy is in a non-default namespace, never use brk. + Likewise if dlopened from statically linked program. */ Dl_info di; struct link_map *l; - if (_dl_addr (ptmalloc_init, &di, &l, NULL) != 0 && l->l_ns != LM_ID_BASE) + extern struct dl_open_hook *_dl_open_hook; + libc_hidden_proto (_dl_open_hook); + + if (_dl_open_hook != NULL + || (_dl_addr (ptmalloc_init, &di, &l, NULL) != 0 + && l->l_ns != LM_ID_BASE)) __morecore = __failing_morecore; #endif |