FreeCAD/0001-Avoid-catching-SIGSEGV-defer-to-system-services.patch

30 lines
1.1 KiB
Diff
Raw Normal View History

From 00d1d5908f85054f3c149c9b6a14fd36a1eaa572 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Stefan=20Br=C3=BCns?= <stefan.bruens@rwth-aachen.de>
Date: Sun, 20 Mar 2022 04:22:24 +0100
Subject: [PATCH] Avoid catching SIGSEGV, defer to system services
The current implementation ignores the basic signal handler requirement
to only call signal safe functions, e.g. backtrace_symbols and
abi::__cxa_demangle. This causes deadlocks when the handler is called
from malloc/free and similar.
---
src/App/Application.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/App/Application.cpp b/src/App/Application.cpp
index 7f93db5775..58e3b1f90f 100644
--- a/src/App/Application.cpp
+++ b/src/App/Application.cpp
@@ -1860,7 +1860,7 @@ void Application::init(int argc, char ** argv)
std::set_terminate(unhandled_exception_handler);
::set_unexpected(unexpection_error_handler);
#elif defined(FC_OS_LINUX)
- std::signal(SIGSEGV,segmentation_fault_handler);
+ // std::signal(SIGSEGV,segmentation_fault_handler);
#endif
#if defined(FC_SE_TRANSLATOR)
_set_se_translator(my_se_translator_filter);
--
2.35.1