From 87b3a8f9ceb2cf0a5c8b72e460465fb9ff2d62d9 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 30 Apr 2021 17:40:36 -0700
Subject: [PATCH] c-stack: stop using SIGSTKSZ

This patch is required with glibc 2.34+
based on gnulib [1]

[1] https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=f9e2b20a12a230efa30f1d479563ae07d276a94b

Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 lib/c-stack.c | 22 +++++++++++++---------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/lib/c-stack.c b/lib/c-stack.c
index 9bbe6fe..e0874c9 100644
--- a/lib/c-stack.c
+++ b/lib/c-stack.c
@@ -51,13 +51,14 @@
 typedef struct sigaltstack stack_t;
 #endif
 #ifndef SIGSTKSZ
-# define SIGSTKSZ 16384
-#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
+#define get_sigstksz()  (16384)
+#elif HAVE_LIBSIGSEGV
 /* libsigsegv 2.6 through 2.8 have a bug where some architectures use
    more than the Linux default of an 8k alternate stack when deciding
    if a fault was caused by stack overflow.  */
-# undef SIGSTKSZ
-# define SIGSTKSZ 16384
+#define get_sigstksz() ((SIGSTKSZ) < 16384 ? 16384 : (SIGSTKSZ))
+#else
+#define get_sigstksz() ((SIGSTKSZ))
 #endif
 
 #include <stdlib.h>
@@ -136,7 +137,8 @@ die (int signo)
 /* Storage for the alternate signal stack.  */
 static union
 {
-  char buffer[SIGSTKSZ];
+  /* allocate buffer with size from get_sigstksz() */
+  char *buffer;
 
   /* These other members are for proper alignment.  There's no
      standard way to guarantee stack alignment, but this seems enough
@@ -208,10 +210,11 @@ c_stack_action (void (*action) (int))
   program_error_message = _("program error");
   stack_overflow_message = _("stack overflow");
 
+  alternate_signal_stack.buffer = malloc(get_sigstksz());
   /* Always install the overflow handler.  */
   if (stackoverflow_install_handler (overflow_handler,
                                      alternate_signal_stack.buffer,
-                                     sizeof alternate_signal_stack.buffer))
+                                     get_sigstksz()))
     {
       errno = ENOTSUP;
       return -1;
@@ -284,14 +287,15 @@ c_stack_action (void (*action) (int))
   stack_t st;
   struct sigaction act;
   st.ss_flags = 0;
+  alternate_signal_stack.buffer = malloc(get_sigstksz());
 # if SIGALTSTACK_SS_REVERSED
   /* Irix mistakenly treats ss_sp as the upper bound, rather than
      lower bound, of the alternate stack.  */
-  st.ss_sp = alternate_signal_stack.buffer + SIGSTKSZ - sizeof (void *);
-  st.ss_size = sizeof alternate_signal_stack.buffer - sizeof (void *);
+  st.ss_sp = alternate_signal_stack.buffer + get_sigstksz() - sizeof (void *);
+  st.ss_size = get_sigstksz() - sizeof (void *);
 # else
   st.ss_sp = alternate_signal_stack.buffer;
-  st.ss_size = sizeof alternate_signal_stack.buffer;
+  st.ss_size = get_sigstksz();
 # endif
   r = sigaltstack (&st, NULL);
   if (r != 0)
-- 
2.31.1

