summaryrefslogtreecommitdiff
path: root/ldso/ldso/ldso.c
diff options
context:
space:
mode:
Diffstat (limited to 'ldso/ldso/ldso.c')
-rw-r--r--ldso/ldso/ldso.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c
index 2f8e611ba..b6f236d0b 100644
--- a/ldso/ldso/ldso.c
+++ b/ldso/ldso/ldso.c
@@ -902,6 +902,10 @@ static void _dl_get_ready_to_run(struct elf_resolve *tpnt, struct elf_resolve *a
*str2 = '\0';
if (!_dl_secure || _dl_strchr(str, '/') == NULL)
{
+ if ((tpnt1 = _dl_check_if_named_library_is_loaded(str)))
+ {
+ continue;
+ }
tpnt1 = _dl_load_shared_library(_dl_secure, &rpnt, NULL, str);
if (!tpnt1) {
#ifdef __LDSO_LDD_SUPPORT__
@@ -978,6 +982,10 @@ static void _dl_get_ready_to_run(struct elf_resolve *tpnt, struct elf_resolve *a
c = *cp;
*cp = '\0';
+ if ((tpnt1 = _dl_check_if_named_library_is_loaded(cp2)))
+ {
+ continue;
+ }
tpnt1 = _dl_load_shared_library(0, &rpnt, NULL, cp2);
if (!tpnt1) {
#ifdef __LDSO_LDD_SUPPORT__
@@ -1068,6 +1076,10 @@ static void _dl_get_ready_to_run(struct elf_resolve *tpnt, struct elf_resolve *a
tpnt = NULL;
continue;
}
+ if ((tpnt1 = _dl_check_if_named_library_is_loaded(lpntstr)))
+ {
+ continue;
+ }
if (!(tpnt1 = _dl_load_shared_library(0, &rpnt, tcurr, lpntstr)))
{
#ifdef __LDSO_LDD_SUPPORT__