aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--elf/dl-deps.c4
-rw-r--r--elf/dl-sym.c4
3 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index f7e5a48..14bf6c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2000-05-09 Jakub Jelinek <jakub@redhat.com>
+
+ * elf/dl-sym.c (_dl_sym): Test ref not result for non-zero.
+ (_dl_vsym): Likewise.
+ Reported by Owen Taylor <otaylor@redhat.com>.
+
+ * elf/dl-deps.c (_dl_map_object_deps): Zero terminate L->l_initfini
+ always.
+
2000-05-08 Andreas Jaeger <aj@suse.de>
* include/libintl.h: Add prototype for __bind_textdomain_codeset.
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index d59f536..fca210f 100644
--- a/elf/dl-deps.c
+++ b/elf/dl-deps.c
@@ -465,7 +465,7 @@ _dl_map_object_deps (struct link_map *map,
/* Store the search list we built in the object. It will be used for
searches in the scope of this object. */
- map->l_searchlist.r_list = malloc ((2 * nlist
+ map->l_searchlist.r_list = malloc ((2 * nlist + 1
+ (nlist == nduplist ? 0 : nduplist))
* sizeof (struct link_map *));
if (map->l_searchlist.r_list == NULL)
@@ -549,4 +549,6 @@ _dl_map_object_deps (struct link_map *map,
}
}
}
+ /* Terminate the list of dependencies. */
+ map->l_initfini[nlist] = NULL;
}
diff --git a/elf/dl-sym.c b/elf/dl-sym.c
index 84236ff..8ab6f2c 100644
--- a/elf/dl-sym.c
+++ b/elf/dl-sym.c
@@ -74,7 +74,7 @@ RTLD_NEXT used in code not dynamically loaded"));
}
}
- if (result)
+ if (ref)
return DL_SYMBOL_ADDRESS (result, ref);
return NULL;
@@ -130,7 +130,7 @@ RTLD_NEXT used in code not dynamically loaded"));
map->l_local_scope, &vers, 0);
}
- if (result)
+ if (ref)
return DL_SYMBOL_ADDRESS (result, ref);
return NULL;
}