Print this page
OS-5293 lx brand: prelink(8)'d binaries core dump before main()
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

*** 1358,1371 **** MOBJ_STAT_ADD(nomem_header); continue; } if (num_segs++ == 0) { /* ! * The p_vaddr of the first PT_LOAD segment ! * must either be NULL or within the first ! * page in order to be interpreted. ! * Otherwise, its an invalid file. */ if (e_type == ET_DYN && ((caddr_t)((uintptr_t)vaddr & (uintptr_t)PAGEMASK) != NULL)) { MOBJ_STAT_ADD(inval_header); --- 1358,1376 ---- MOBJ_STAT_ADD(nomem_header); continue; } if (num_segs++ == 0) { /* ! * While ELF doesn't specify the meaning of ! * p_vaddr for PT_LOAD segments in ET_DYN ! * objects, we mandate that is either NULL or ! * (to accommodate some historical binaries) ! * within the first page. (Note that there ! * exist non-native ET_DYN objects that violate ! * this constraint that we nonetheless must be ! * able to execute; see the ET_DYN handling in ! * mapelfexec() for details.) */ if (e_type == ET_DYN && ((caddr_t)((uintptr_t)vaddr & (uintptr_t)PAGEMASK) != NULL)) { MOBJ_STAT_ADD(inval_header);