diff options
Diffstat (limited to 'elf/dl-runtime.c')
-rw-r--r-- | elf/dl-runtime.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/elf/dl-runtime.c b/elf/dl-runtime.c index 53601b809f..5c1f290fe5 100644 --- a/elf/dl-runtime.c +++ b/elf/dl-runtime.c @@ -64,7 +64,11 @@ _dl_object_relocation_scope (struct link_map *l) dependency tree that first caused this object to be loaded. */ while (l->l_loader) l = l->l_loader; - *_dl_global_scope_end = l; + /* There is no point in searching the same list twice. This isn't + guaranteed to always find all duplicates if new objects are added + to the global scope, but is good enough most of the time. */ + if (_dl_global_scope[2] != l) + *_dl_global_scope_end = l; return &_dl_global_scope[2]; } } |