diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2015-06-29 16:31:10 +0000 | 
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2015-06-29 16:31:10 +0000 | 
| commit | 189f06135385965fd33dc06f5b1a059114a135cc (patch) | |
| tree | 31a5634b1d94036a862e5c986da415e9015dbc4a | |
| parent | 2d4920e1ee8db334f9c3eeb318c264c72a0fd53b (diff) | |
| download | bcm5719-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.cc | 5 | 
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);  | 

