2000-08-30 Ulrich Drepper <drepper@redhat.com>
+ * elf/dl-load.c (fillin_rpath): Make local copy of where string
+ since the object being loaded can be unloaded.
+
* iconvdata/Makefile (tests): Add tst-loading.
* iconvdata/tst-loading.c: New file.
{
size_t cnt;
enum r_dir_status init_val;
+ size_t where_len = strlen (where) + 1;
/* It's a new directory. Create an entry and add it. */
dirp = (struct r_search_path_elem *)
- malloc (sizeof (*dirp) + ncapstr * sizeof (enum r_dir_status));
+ malloc (sizeof (*dirp) + ncapstr * sizeof (enum r_dir_status)
+ + where_len);
if (dirp == NULL)
_dl_signal_error (ENOMEM, NULL,
N_("cannot create cache for search path"));
dirp->status[cnt] = init_val;
dirp->what = what;
- dirp->where = where;
+ dirp->where = memcpy ((char *) dirp + sizeof (*dirp)
+ + ncapstr * sizeof (enum r_dir_status),
+ where, where_len);
dirp->next = all_dirs;
all_dirs = dirp;