Start mapping thread stacks with MAP_STACK. mmap() currently ignores
authorderaadt <deraadt@openbsd.org>
Sun, 11 Feb 2018 04:12:22 +0000 (04:12 +0000)
committerderaadt <deraadt@openbsd.org>
Sun, 11 Feb 2018 04:12:22 +0000 (04:12 +0000)
the flag, but some problem identification can begin.

lib/librthread/rthread_stack.c

index 73c13e8..37d2eea 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: rthread_stack.c,v 1.18 2018/02/10 22:59:02 deraadt Exp $ */
+/* $OpenBSD: rthread_stack.c,v 1.19 2018/02/11 04:12:22 deraadt Exp $ */
 
 /* PUBLIC DOMAIN: No Rights Reserved. Marco S Hyman <marc@snafu.org> */
 
@@ -92,7 +92,7 @@ _rthread_alloc_stack(pthread_t thread)
 
        /* actually allocate the real stack */
        base = mmap(NULL, size, PROT_READ | PROT_WRITE,
-           MAP_PRIVATE | MAP_ANON, -1, 0);
+           MAP_PRIVATE | MAP_ANON | MAP_STACK, -1, 0);
        if (base == MAP_FAILED) {
                free(stack);
                return (NULL);