Cache does not serve any purpose when rtld is relocating itself, do

not bother allocating one.

Submitted by:	kan
Approved by:	re (bmah)
This commit is contained in:
Ken Smith 2007-07-13 16:18:43 +00:00
parent 99d4bb3999
commit 6e5e629f07
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=171432

View File

@ -260,8 +260,12 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry *obj_rtld)
* The dynamic loader may be called from a thread, we have
* limited amounts of stack available so we cannot use alloca().
*/
cache = mmap(NULL, bytes, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0);
if (cache == MAP_FAILED)
if (obj != obj_rtld) {
cache = mmap(NULL, bytes, PROT_READ|PROT_WRITE, MAP_ANON,
-1, 0);
if (cache == MAP_FAILED)
cache = NULL;
} else
cache = NULL;
relalim = (const Elf_Rela *)((caddr_t)obj->rela + obj->relasize);