summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorcypherpunks <cypherpunks@torproject.org>2016-12-18 15:55:37 +0000
committerNick Mathewson <nickm@torproject.org>2016-12-23 10:54:17 -0500
commit04f21f03221a3888bde376ee1c2daa1effccbb4e (patch)
treeabb7dc2d13c444706764163fa772b557578c9582 /src/test
parentd3c0b137aff9ae506778c74d885088cbdb535922 (diff)
downloadtor-04f21f03221a3888bde376ee1c2daa1effccbb4e.tar.gz
tor-04f21f03221a3888bde376ee1c2daa1effccbb4e.zip
Remove abort handler from the backtrace generator
The abort handler masks the exit status of the backtrace generator by capturing the abort signal from the backtrace handler and exiting with zero. Because the output of the backtrace generator is meant to be piped to `bt_test.py`, its exit status is unimportant and is currently ignored. The abort handler calls `exit(3)` which is not asynchronous-signal-safe and calling it in this context is undefined behavior [0]. Closes ticket 21026. [0] https://www.securecoding.cert.org/confluence/x/34At
Diffstat (limited to 'src/test')
-rw-r--r--src/test/test_bt_cl.c11
1 files changed, 0 insertions, 11 deletions
diff --git a/src/test/test_bt_cl.c b/src/test/test_bt_cl.c
index 95b4f48f11..709d599f52 100644
--- a/src/test/test_bt_cl.c
+++ b/src/test/test_bt_cl.c
@@ -19,14 +19,12 @@ static int crashtype = 0;
#ifdef __GNUC__
#define NOINLINE __attribute__((noinline))
-#define NORETURN __attribute__((noreturn))
#endif
int crash(int x) NOINLINE;
int oh_what(int x) NOINLINE;
int a_tangled_web(int x) NOINLINE;
int we_weave(int x) NOINLINE;
-static void abort_handler(int s) NORETURN;
#ifdef HAVE_CFLAG_WNULL_DEREFERENCE
DISABLE_GCC_WARNING(null-dereference)
@@ -76,13 +74,6 @@ we_weave(int x)
return a_tangled_web(x) + a_tangled_web(x+1);
}
-static void
-abort_handler(int s)
-{
- (void)s;
- exit(0);
-}
-
int
main(int argc, char **argv)
{
@@ -120,8 +111,6 @@ main(int argc, char **argv)
configure_backtrace_handler(NULL);
- signal(SIGABRT, abort_handler);
-
printf("%d\n", we_weave(2));
clean_up_backtrace_handler();