Also set r->r_map when unmapping the first object in a namespace.

When unmapping the first object in a namespace, the runtime linker
did not update the externally visible pointer.  This resulted in
debuggers seeing pointers to memory that had been freed.
This commit is contained in:
Gary Benson 2012-08-17 11:44:37 +01:00
parent 86466cd930
commit d9195db871
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2012-08-16 Gary Benson <gbenson@redhat.com>
* elf/dl-close.c (_dl_close_worker): Also set r->r_map when
unmapping the first object in a namespace.
2012-08-16 Roland McGrath <roland@hack.frob.com> 2012-08-16 Roland McGrath <roland@hack.frob.com>
* inet/getnetgrent_r.c (internal_setnetgrent): Renamed to ... * inet/getnetgrent_r.c (internal_setnetgrent): Renamed to ...

View File

@ -641,7 +641,7 @@ _dl_close_worker (struct link_map *map)
#ifdef SHARED #ifdef SHARED
assert (nsid != LM_ID_BASE); assert (nsid != LM_ID_BASE);
#endif #endif
ns->_ns_loaded = imap->l_next; r->r_map = ns->_ns_loaded = imap->l_next;
} }
--ns->_ns_nloaded; --ns->_ns_nloaded;