diff --git a/cmake/FindSigaltstack.cmake b/cmake/FindSigaltstack.cmake index 5ed7106f0f..307454c2b2 100644 --- a/cmake/FindSigaltstack.cmake +++ b/cmake/FindSigaltstack.cmake @@ -11,7 +11,7 @@ check_cxx_source_compiles(" sigaltstack(&ss, nullptr); return 0; }" - SIGALTSTACK + SIGALTSTACK_FOUND ) if (SIGALTSTACK_FOUND) diff --git a/src/os/unix/crashlog_unix.cpp b/src/os/unix/crashlog_unix.cpp index c4dd0f6acc..b3ee778e53 100644 --- a/src/os/unix/crashlog_unix.cpp +++ b/src/os/unix/crashlog_unix.cpp @@ -820,9 +820,9 @@ static void CDECL HandleCrash(int signum) /* static */ void CrashLog::InitialiseCrashLog() { #ifdef WITH_SIGALTSTACK - const size_t stack_size = max(SIGSTKSZ, 512*1024); + const size_t stack_size = std::max(SIGSTKSZ, 512*1024); stack_t ss; - ss.ss_sp = CallocT(stack_size); + ss.ss_sp = mmap(nullptr, stack_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); ss.ss_size = stack_size; ss.ss_flags = 0; sigaltstack(&ss, nullptr);