2000-05-09 Jakub Jelinek <jakub@redhat.com>
authoraj <aj>
Wed, 10 May 2000 09:05:36 +0000 (09:05 +0000)
committeraj <aj>
Wed, 10 May 2000 09:05:36 +0000 (09:05 +0000)
* 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.

elf/dl-deps.c
elf/dl-sym.c

index d59f536..fca210f 100644 (file)
@@ -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;
 }
index 84236ff..8ab6f2c 100644 (file)
@@ -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;
 }