* elf/dl-close.c (_dl_close): Add more comments and correct some.
	Free l_searchlist and l_dupsearchlist.
This commit is contained in:
Ulrich Drepper 1998-09-01 23:08:36 +00:00
parent fc3597c0f8
commit 4ce636da6c
2 changed files with 18 additions and 3 deletions

View File

@ -1,5 +1,8 @@
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.
1998-09-01 17:53 Ulrich Drepper <drepper@cygnus.com>

View File

@ -116,8 +116,8 @@ _dl_close (struct link_map *map)
}
/* We can unmap all the maps at once. We determined the
length when we loaded the object and `munmap' call does
the rest. */
start address and length when we loaded the object and
the `munmap' call does the rest. */
__munmap ((void *) 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)
free ((char *) imap->l_origin);
/* These names always is allocated. */
/* This name always is allocated. */
free (imap->l_name);
/* Remove the list with all the names of the shared object. */
lnp = imap->l_libname;
do
{
@ -154,6 +155,17 @@ _dl_close (struct link_map *map)
}
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);
}
}