mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-18 14:30:43 +08:00
Update.
* elf/dl-load.c (fillin_rpath): Make local copy of where string since the object being loaded can be unloaded.
This commit is contained in:
parent
b4f95b74f7
commit
32ee8d952f
@ -1,5 +1,8 @@
|
||||
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.
|
||||
|
||||
|
@ -408,10 +408,12 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
|
||||
{
|
||||
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"));
|
||||
@ -430,7 +432,9 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
|
||||
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user