diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 2016-05-10 18:39:54 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 2016-05-10 18:39:54 +0000 |
commit | 869ce5a1007a9d00bbac5121d825c80be70f9dde (patch) | |
tree | 26cd16954837176d7032fd1841853c34c5b32f99 /sys/arch/alpha/include/signal.h | |
parent | 24ed245ec22671d3d288d52c91f39a81a24637bf (diff) |
SROP mitigation. sendsig() stores a (per-process ^ &sigcontext) cookie
inside the sigcontext. sigreturn(2) checks syscall entry was from the
exact PC addr in the (per-process ASLR) sigtramp, verifies the cookie,
and clears it to prevent sigcontext reuse.
not yet tested on landisk, sparc, *88k, socppc.
ok kettenis
Diffstat (limited to 'sys/arch/alpha/include/signal.h')
-rw-r--r-- | sys/arch/alpha/include/signal.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/arch/alpha/include/signal.h b/sys/arch/alpha/include/signal.h index b79b2770689..b080e2553f8 100644 --- a/sys/arch/alpha/include/signal.h +++ b/sys/arch/alpha/include/signal.h @@ -1,4 +1,4 @@ -/* $OpenBSD: signal.h,v 1.9 2015/11/07 19:06:05 miod Exp $ */ +/* $OpenBSD: signal.h,v 1.10 2016/05/10 18:39:42 deraadt Exp $ */ /* $NetBSD: signal.h,v 1.2 1995/02/16 03:08:08 cgd Exp $ */ /* @@ -47,8 +47,8 @@ typedef int sig_atomic_t; * representations of 'struct reg' and 'struct fpreg', respectively. */ struct sigcontext { - long __sc_unused; - long sc_mask; /* signal mask to restore */ + long sc_cookie; + long sc_mask; /* signal mask to restore XXX should be int */ long sc_pc; /* pc to restore */ long sc_ps; /* ps to restore */ unsigned long sc_regs[32]; /* integer register set (see above) */ |