Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/freebsd32/freebsd32_misc.c
Show All 24 Lines | |||||
*/ | */ | ||||
#include <sys/cdefs.h> | #include <sys/cdefs.h> | ||||
__FBSDID("$FreeBSD$"); | __FBSDID("$FreeBSD$"); | ||||
#include "opt_compat.h" | #include "opt_compat.h" | ||||
#include "opt_inet.h" | #include "opt_inet.h" | ||||
#include "opt_inet6.h" | #include "opt_inet6.h" | ||||
#include "opt_pax.h" | |||||
#define __ELF_WORD_SIZE 32 | #define __ELF_WORD_SIZE 32 | ||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/bus.h> | #include <sys/bus.h> | ||||
#include <sys/capsicum.h> | #include <sys/capsicum.h> | ||||
#include <sys/clock.h> | #include <sys/clock.h> | ||||
#include <sys/exec.h> | #include <sys/exec.h> | ||||
Show All 9 Lines | |||||
#include <sys/file.h> /* Must come after sys/malloc.h */ | #include <sys/file.h> /* Must come after sys/malloc.h */ | ||||
#include <sys/imgact.h> | #include <sys/imgact.h> | ||||
#include <sys/mbuf.h> | #include <sys/mbuf.h> | ||||
#include <sys/mman.h> | #include <sys/mman.h> | ||||
#include <sys/module.h> | #include <sys/module.h> | ||||
#include <sys/mount.h> | #include <sys/mount.h> | ||||
#include <sys/mutex.h> | #include <sys/mutex.h> | ||||
#include <sys/namei.h> | #include <sys/namei.h> | ||||
#include <sys/pax.h> | |||||
#include <sys/proc.h> | #include <sys/proc.h> | ||||
#include <sys/procctl.h> | #include <sys/procctl.h> | ||||
#include <sys/reboot.h> | #include <sys/reboot.h> | ||||
#include <sys/resource.h> | #include <sys/resource.h> | ||||
#include <sys/resourcevar.h> | #include <sys/resourcevar.h> | ||||
#include <sys/selinfo.h> | #include <sys/selinfo.h> | ||||
#include <sys/eventvar.h> /* Must come after sys/selinfo.h */ | #include <sys/eventvar.h> /* Must come after sys/selinfo.h */ | ||||
#include <sys/pipe.h> /* Must come after sys/selinfo.h */ | #include <sys/pipe.h> /* Must come after sys/selinfo.h */ | ||||
▲ Show 20 Lines • Show All 2,694 Lines • ▼ Show 20 Lines | else | ||||
execpath_len = 0; | execpath_len = 0; | ||||
arginfo = (struct freebsd32_ps_strings *)curproc->p_sysent-> | arginfo = (struct freebsd32_ps_strings *)curproc->p_sysent-> | ||||
sv_psstrings; | sv_psstrings; | ||||
if (imgp->proc->p_sysent->sv_sigcode_base == 0) | if (imgp->proc->p_sysent->sv_sigcode_base == 0) | ||||
szsigcode = *(imgp->proc->p_sysent->sv_szsigcode); | szsigcode = *(imgp->proc->p_sysent->sv_szsigcode); | ||||
else | else | ||||
szsigcode = 0; | szsigcode = 0; | ||||
destp = (uintptr_t)arginfo; | destp = (uintptr_t)arginfo; | ||||
#ifdef PAX_ASLR | |||||
pax_aslr_stack(curthread, &destp); | |||||
#endif | |||||
/* | /* | ||||
* install sigcode | * install sigcode | ||||
*/ | */ | ||||
if (szsigcode != 0) { | if (szsigcode != 0) { | ||||
destp -= szsigcode; | destp -= szsigcode; | ||||
destp = rounddown2(destp, sizeof(uint32_t)); | destp = rounddown2(destp, sizeof(uint32_t)); | ||||
copyout(imgp->proc->p_sysent->sv_sigcode, (void *)destp, | copyout(imgp->proc->p_sysent->sv_sigcode, (void *)destp, | ||||
▲ Show 20 Lines • Show All 232 Lines • Show Last 20 Lines |