]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Prevent ASAN from registering a SIGSEGV handler
authorcypherpunks <cypherpunks@torproject.org>
Thu, 19 May 2016 13:09:31 +0000 (13:09 +0000)
committerNick Mathewson <nickm@torproject.org>
Fri, 20 May 2016 12:34:18 +0000 (08:34 -0400)
AddressSanitizer's (ASAN) SIGSEGV handler overrides the backtrace
handler and prevents it from printing its backtrace. The output of ASAN
is different from what 'bt_test.py' expects and causes backtrace test
failures.

The 'allow_user_segv_handler' option allows applications to set their
own SIGSEGV handler but is not supported by older GCC versions. These
older GCC versions do support the 'handle_segv' which prevents ASAN from
setting its SIGSEGV handler.

src/test/test_bt.sh

index 83fa3ff24bc57923e73831988f3b0f6a83c5fc41..fe1781659d26eef9a287abcf6d863b6c06ef764a 100755 (executable)
@@ -3,6 +3,7 @@
 
 exitcode=0
 
+export ASAN_OPTIONS="handle_segv=0:allow_user_segv_handler=1"
 "${builddir:-.}/src/test/test-bt-cl" backtraces || exit $?
 "${builddir:-.}/src/test/test-bt-cl" assert 2>&1 | "${PYTHON:-python}" "${abs_top_srcdir:-.}/src/test/bt_test.py" || exitcode="$?"
 "${builddir:-.}/src/test/test-bt-cl" crash  2>&1 | "${PYTHON:-python}" "${abs_top_srcdir:-.}/src/test/bt_test.py" || exitcode="$?"