The sigaltstack() MAP_STACK re-map mechanism is incompatible with immutable
authorderaadt <deraadt@openbsd.org>
Wed, 12 Oct 2022 02:39:16 +0000 (02:39 +0000)
committerderaadt <deraadt@openbsd.org>
Wed, 12 Oct 2022 02:39:16 +0000 (02:39 +0000)
regions, so immutable stack isn't viable yet. There are configure programs
which create sigstacks upon their own stacks, and there is no simple fix for
the sigaltstack mechanism...
discovered by sthen and tb

sys/kern/kern_exec.c

index 8f9fc6e..0e4ac01 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: kern_exec.c,v 1.234 2022/10/08 17:03:09 deraadt Exp $ */
+/*     $OpenBSD: kern_exec.c,v 1.235 2022/10/12 02:39:16 deraadt Exp $ */
 /*     $NetBSD: kern_exec.c,v 1.75 1996/02/09 18:59:28 christos Exp $  */
 
 /*-
@@ -476,9 +476,6 @@ sys_execve(struct proc *p, void *v, register_t *retval)
                 goto exec_abort;
 #endif
 
-       uvm_map_immutable(&p->p_vmspace->vm_map, (vaddr_t)vm->vm_maxsaddr,
-           (vaddr_t)vm->vm_minsaddr, 1, "stack");
-
        memset(&arginfo, 0, sizeof(arginfo));
 
        /* remember information about the process */