summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2015-06-29 16:31:10 +0000
committerDmitry Vyukov <dvyukov@google.com>2015-06-29 16:31:10 +0000
commit189f06135385965fd33dc06f5b1a059114a135cc (patch)
tree31a5634b1d94036a862e5c986da415e9015dbc4a
parent2d4920e1ee8db334f9c3eeb318c264c72a0fd53b (diff)
downloadbcm5719-llvm-189f06135385965fd33dc06f5b1a059114a135cc.tar.gz
bcm5719-llvm-189f06135385965fd33dc06f5b1a059114a135cc.zip
sanitizer_common: fix and re-enable signal_segv_handler test
struct sigaction was not initialized. As the result if SA_RESETHAND is set in sa_flags, then the handler is reset after first invocation leading to crash. Initialize struct sigaction to zero. Reviewed in http://reviews.llvm.org/D10803 llvm-svn: 240965
-rw-r--r--compiler-rt/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cc b/compiler-rt/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cc
index dd18213d61e..23e32a88492 100644
--- a/compiler-rt/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cc
+++ b/compiler-rt/test/sanitizer_common/TestCases/Linux/signal_segv_handler.cc
@@ -13,12 +13,11 @@
// "benign" SEGVs that are handled by signal handler, and ensures that
// the process survive.
-// REQUIRES: disabled
-
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/mman.h>
+#include <string.h>
void *guard;
@@ -28,6 +27,8 @@ void handler(int signo, siginfo_t *info, void *uctx) {
int main() {
struct sigaction a, old;
+ memset(&a, 0, sizeof(a));
+ memset(&old, 0, sizeof(old));
a.sa_sigaction = handler;
a.sa_flags = SA_SIGINFO;
sigaction(SIGSEGV, &a, &old);
OpenPOWER on IntegriCloud