From e899ca3651f8c5e01bf3420cfb34aad97d093f74 Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Wed, 29 Jan 2025 16:51:16 -0500 Subject: [PATCH] nptl: Correct stack size attribute when stack grows up [BZ #32574] Set stack size attribute to the size of the mmap'd region only when the size of the remaining stack space is less than the size of the mmap'd region. This was reversed. As a result, the initial stack size was only 135168 bytes. On architectures where the stack grows down, the initial stack size is approximately 8384512 bytes with the default rlimit settings. The small main stack size on hppa broke applications like ruby that check for stack overflows. Signed-off-by: John David Anglin --- nptl/pthread_getattr_np.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nptl/pthread_getattr_np.c b/nptl/pthread_getattr_np.c index 1e91874767..3ce34437bc 100644 --- a/nptl/pthread_getattr_np.c +++ b/nptl/pthread_getattr_np.c @@ -145,9 +145,9 @@ __pthread_getattr_np (pthread_t thread_id, pthread_attr_t *attr) > (size_t) iattr->stackaddr - last_to) iattr->stacksize = (size_t) iattr->stackaddr - last_to; #else - /* The limit might be too high. */ + /* The limit might be too low. */ if ((size_t) iattr->stacksize - > to - (size_t) iattr->stackaddr) + < to - (size_t) iattr->stackaddr) iattr->stacksize = to - (size_t) iattr->stackaddr; #endif /* We succeed and no need to look further. */ -- 2.47.2