diff options
Diffstat (limited to 'elf/dl-open.c')
-rw-r--r-- | elf/dl-open.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/elf/dl-open.c b/elf/dl-open.c index 63a7091fff..c093e54302 100644 --- a/elf/dl-open.c +++ b/elf/dl-open.c @@ -36,7 +36,7 @@ extern char **__libc_argv; extern char **__environ; -size_t _dl_global_scope_alloc; +static size_t _dl_global_scope_alloc; struct link_map * _dl_open (const char *file, int mode) @@ -101,7 +101,8 @@ _dl_open (const char *file, int mode) { /* This is the first dynamic object given global scope. */ _dl_global_scope_alloc = 8; - _dl_global_scope = malloc (8 * sizeof (struct link_map *)); + _dl_global_scope = malloc (_dl_global_scope_alloc + * sizeof (struct link_map *)); if (! _dl_global_scope) { _dl_global_scope = _dl_default_scope; @@ -122,7 +123,8 @@ _dl_open (const char *file, int mode) { /* Must extend the list. */ struct link_map **new = realloc (_dl_global_scope, - _dl_global_scope_alloc * 2); + _dl_global_scope_alloc * 2 + * sizeof (struct link_map *)); if (! new) goto nomem; _dl_global_scope_end = new + (_dl_global_scope_end - |