aboutsummaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorAlexander Kabaev <kan@FreeBSD.org>2005-12-22 16:42:38 +0000
committerAlexander Kabaev <kan@FreeBSD.org>2005-12-22 16:42:38 +0000
commitf6e5db226ff68cde2d5f9b5a0cd5b93070828d19 (patch)
treeb57026149740e433b9ca367ee38817936b3c09f4 /libexec
parentbe7ccc4ba33eaffea3b6c9f16a5ee238453484d8 (diff)
downloadsrc-f6e5db226ff68cde2d5f9b5a0cd5b93070828d19.tar.gz
src-f6e5db226ff68cde2d5f9b5a0cd5b93070828d19.zip
Initialize object dagmembers list before checking version dependencies.
Notes
Notes: svn path=/head/; revision=153648
Diffstat (limited to 'libexec')
-rw-r--r--libexec/rtld-elf/rtld.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index e3790046cc2a..01ea4f664699 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -1762,16 +1762,14 @@ dlopen(const char *name, int mode)
mode &= RTLD_MODEMASK;
if (*old_obj_tail != NULL) { /* We loaded something new. */
assert(*old_obj_tail == obj);
-
result = load_needed_objects(obj);
+ init_dag(obj);
if (result != -1)
result = rtld_verify_versions(&obj->dagmembers);
if (result != -1 && ld_tracing)
goto trace;
-
if (result == -1 ||
- (init_dag(obj), relocate_objects(obj, mode == RTLD_NOW,
- &obj_rtld)) == -1) {
+ (relocate_objects(obj, mode == RTLD_NOW, &obj_rtld)) == -1) {
obj->dl_refcount--;
unref_dag(obj);
if (obj->refcount == 0)