sigstack
SYSCALL_DEFINE2(osf_sigstack, struct sigstack __user *, uss,
struct sigstack __user *, uoss)
asmlinkage int do_sys_sigstack(struct sigstack __user *ssptr,
struct sigstack __user *ossptr,
asmlinkage int do_sys_sigstack(struct sigstack __user *ssptr,
struct sigstack __user *ossptr,
unsigned char sigstack[UM_KERN_PAGE_SIZE] __aligned(UM_KERN_PAGE_SIZE);
d->si_offset = (unsigned long)info - (unsigned long)&d->sigstack[0];
d->mctx_offset = (unsigned long)&uc->uc_mcontext - (unsigned long)&d->sigstack[0];
offsetof(struct stub_data, sigstack) +
sizeof(((struct stub_data *) 0)->sigstack) -
if (data->mctx_offset > sizeof(data->sigstack) - sizeof(mcontext_t)) {
if (proc_data->si_offset > sizeof(proc_data->sigstack) - sizeof(*si))
memcpy(si, &proc_data->sigstack[proc_data->si_offset], sizeof(*si));
mcontext_t *mcontext = (void *)&proc_data->sigstack[proc_data->mctx_offset];
(unsigned long)&seccomp_test_stub_data->sigstack[0];
set_sigstack(seccomp_test_stub_data->sigstack,
sizeof(seccomp_test_stub_data->sigstack));
(unsigned long)&data->sigstack[0]);
(void *)data->sigstack + sizeof(data->sigstack))
(void *)data->sigstack + sizeof(data->sigstack))
mcontext = (void *)&data->sigstack[data->mctx_offset];
mcontext = (void *)&data->sigstack[data->mctx_offset];
if ((unsigned long)mcontext < (unsigned long)data->sigstack ||
(unsigned long) data->sigstack +
sizeof(data->sigstack) - sizeof(*mcontext))
static stack_t sigstack;
sigstack.ss_sp = mmap(0, STACK_SIZE, PROT_READ | PROT_WRITE,
sigstack.ss_flags = 0;
sigstack.ss_size = STACK_SIZE;
thread_segv_maperr_ptr(&sigstack);
static stack_t sigstack;
sigstack.ss_sp = mmap(0, STACK_SIZE, PROT_READ | PROT_WRITE,
sigstack.ss_flags = 0;
sigstack.ss_size = STACK_SIZE;
thread_sigusr2_self(&sigstack);