mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-05 09:01:07 +00:00
Update.
* elf/dl-close.c (_dl_close): Add more comments and correct some. Free l_searchlist and l_dupsearchlist.
This commit is contained in:
parent
fc3597c0f8
commit
4ce636da6c
@ -1,5 +1,8 @@
|
|||||||
1998-09-01 Ulrich Drepper <drepper@cygnus.com>
|
1998-09-01 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
|
||||||
|
* elf/dl-close.c (_dl_close): Add more comments and correct some.
|
||||||
|
Free l_searchlist and l_dupsearchlist.
|
||||||
|
|
||||||
* debug/catchsegv.sh: Add one more pair of quotes.
|
* debug/catchsegv.sh: Add one more pair of quotes.
|
||||||
|
|
||||||
1998-09-01 17:53 Ulrich Drepper <drepper@cygnus.com>
|
1998-09-01 17:53 Ulrich Drepper <drepper@cygnus.com>
|
||||||
|
@ -116,8 +116,8 @@ _dl_close (struct link_map *map)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* We can unmap all the maps at once. We determined the
|
/* We can unmap all the maps at once. We determined the
|
||||||
length when we loaded the object and `munmap' call does
|
start address and length when we loaded the object and
|
||||||
the rest. */
|
the `munmap' call does the rest. */
|
||||||
__munmap ((void *) imap->l_map_start,
|
__munmap ((void *) imap->l_map_start,
|
||||||
imap->l_map_end - imap->l_map_start);
|
imap->l_map_end - imap->l_map_start);
|
||||||
|
|
||||||
@ -143,8 +143,9 @@ _dl_close (struct link_map *map)
|
|||||||
if (imap->l_origin != NULL)
|
if (imap->l_origin != NULL)
|
||||||
free ((char *) imap->l_origin);
|
free ((char *) imap->l_origin);
|
||||||
|
|
||||||
/* These names always is allocated. */
|
/* This name always is allocated. */
|
||||||
free (imap->l_name);
|
free (imap->l_name);
|
||||||
|
/* Remove the list with all the names of the shared object. */
|
||||||
lnp = imap->l_libname;
|
lnp = imap->l_libname;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
@ -154,6 +155,17 @@ _dl_close (struct link_map *map)
|
|||||||
}
|
}
|
||||||
while (lnp != NULL);
|
while (lnp != NULL);
|
||||||
|
|
||||||
|
/* Remove the searchlists. */
|
||||||
|
if (imap->l_dupsearchlist != imap->l_searchlist)
|
||||||
|
{
|
||||||
|
/* If a l_searchlist object exists there always also is
|
||||||
|
a l_dupsearchlist object. */
|
||||||
|
assert (imap->l_dupsearchlist != NULL);
|
||||||
|
free (imap->l_dupsearchlist);
|
||||||
|
}
|
||||||
|
if (imap != map && imap->l_searchlist != NULL)
|
||||||
|
free (imap->l_searchlist);
|
||||||
|
|
||||||
free (imap);
|
free (imap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user