summaryrefslogtreecommitdiff
path: root/98a7d90ee258ceef9c70b0b2955d0458ec46f048.patch
blob: ff0080e28ae1e363d078de41c6d77b1f12b8f3af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
From 98a7d90ee258ceef9c70b0b2955d0458ec46f048 Mon Sep 17 00:00:00 2001
From: elsid <elsid.mail@gmail.com>
Date: Fri, 24 Sep 2021 19:40:29 +0200
Subject: [PATCH] Assume SIGSTKSZ is not a constant

SIGSTKSZ is not defined as constant since glibc 2.34:
https://sourceware.org/git/?p=glibc.git;a=commit;h=6c57d320484988e87e446e2e60ce42816bf51d53
---
 components/crashcatcher/crashcatcher.cpp | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/components/crashcatcher/crashcatcher.cpp b/components/crashcatcher/crashcatcher.cpp
index 86571e1e3a..c828e1ca81 100644
--- a/components/crashcatcher/crashcatcher.cpp
+++ b/components/crashcatcher/crashcatcher.cpp
@@ -56,8 +56,6 @@ static const char exec_err[] = "!!! Failed to exec debug process\n";
 
 static char argv0[PATH_MAX];
 
-static char altstack[SIGSTKSZ];
-
 
 static struct {
     int signum;
@@ -475,9 +473,10 @@ int crashCatcherInstallHandlers(int argc, char **argv, int num_signals, int *sig
 
     /* Set an alternate signal stack so SIGSEGVs caused by stack overflows
      * still run */
+    static char* altstack = new char [SIGSTKSZ];
     altss.ss_sp = altstack;
     altss.ss_flags = 0;
-    altss.ss_size = sizeof(altstack);
+    altss.ss_size = SIGSTKSZ;
     sigaltstack(&altss, nullptr);
 
     memset(&sa, 0, sizeof(sa));
-- 
GitLab