about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2000-05-10 09:06:56 +0000
committerAndreas Jaeger <aj@suse.de>2000-05-10 09:06:56 +0000
commita8571d373c763ce55314d6010c43e7052fa42a45 (patch)
tree2ec6581ab992e6eec605e3656ac106cdc19f45e1 /elf
parentfbd61fc16fd20dfd5d4db3cc305a7b512074575e (diff)
downloadglibc-a8571d373c763ce55314d6010c43e7052fa42a45.tar.gz
glibc-a8571d373c763ce55314d6010c43e7052fa42a45.tar.xz
glibc-a8571d373c763ce55314d6010c43e7052fa42a45.zip
Update.
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.
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-deps.c4
-rw-r--r--elf/dl-sym.c4
2 files changed, 5 insertions, 3 deletions
diff --git a/elf/dl-deps.c b/elf/dl-deps.c
index d59f53658d..fca210f72a 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 84236ff993..8ab6f2c64e 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;
 }