[glibc] nptl: Correct stack size attribute when stack grows up [BZ #32574]

John David Anglin danglin@sourceware.org
Wed Jan 29 21:52:15 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8e86549d1417a4618ab98d10aaba427350b321c6

commit 8e86549d1417a4618ab98d10aaba427350b321c6
Author: John David Anglin <danglin@gcc.gnu.org>
Date:   Wed Jan 29 16:51:16 2025 -0500

    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 <dave.anglin@bell.net>

Diff:
---
 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 e98e2df152..43dd16d59c 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.  */


More information about the Glibc-cvs mailing list