From ea7891a651dc4abc1305438470f1e4cc3b64ece2 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Tue, 8 Nov 2016 11:51:57 -0500 Subject: [PATCH] fix pthread_create regression from stack/guard size simplification commit 33ce920857405d4f4b342c85b74588a15e2702e5 broke pthread_create in the case where a null attribute pointer is passed; rather than using the default sizes, sizes of 0 (plus the remainder of one page after TLS/TCB use) were used. --- src/thread/pthread_create.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c index db9e575e..e8d4a635 100644 --- a/src/thread/pthread_create.c +++ b/src/thread/pthread_create.c @@ -186,7 +186,10 @@ int __pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict att | CLONE_THREAD | CLONE_SYSVSEM | CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID | CLONE_DETACHED; int do_sched = 0; - pthread_attr_t attr = {0}; + pthread_attr_t attr = { + ._a_stacksize = DEFAULT_STACK_SIZE, + ._a_guardsize = DEFAULT_GUARD_SIZE, + }; if (!libc.can_do_threads) return ENOSYS; self = __pthread_self(); -- 2.25.1