(_dl_map_object_deps): Always allocate memory for the l_searchlist,
authordrepper <drepper>
Sun, 12 Jan 2003 08:01:04 +0000 (08:01 +0000)
committerdrepper <drepper>
Sun, 12 Jan 2003 08:01:04 +0000 (08:01 +0000)
not only for l_initfini.

elf/dl-deps.c

index 9fd2dd2..0a9183f 100644 (file)
@@ -1,5 +1,5 @@
 /* Load the dependencies of a mapped object.
-   Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -455,12 +455,14 @@ _dl_map_object_deps (struct link_map *map,
          needed[nneeded++] = NULL;
 
          l->l_initfini = (struct link_map **)
-           malloc ((nneeded + 1) * sizeof needed[0]);
+           malloc ((2 * nneeded + 1) * sizeof needed[0]);
          if (l->l_initfini == NULL)
            INTUSE(_dl_signal_error) (ENOMEM, map->l_name, NULL,
                                      N_("cannot allocate dependency list"));
          l->l_initfini[0] = l;
          memcpy (&l->l_initfini[1], needed, nneeded * sizeof needed[0]);
+         memcpy (&l->l_initfini[nneeded + 1], l->l_initfini,
+                 nneeded * sizeof needed[0]);
        }
 
       /* If we have no auxiliary objects just go on to the next map.  */