Revert "[compiler-rt] Change default of allow_user_segv_handler to true"
Failed libFuzzer tests on Windows. This reverts commit r303476. llvm-svn: 303481
This commit is contained in:
parent
a6bdf751a2
commit
4eff87c36d
|
@ -327,6 +327,11 @@ exec $_to \$@
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# On Android-L not allowing user segv handler breaks some applications.
|
||||||
|
if [[ PRE_L -eq 0 ]]; then
|
||||||
|
ASAN_OPTIONS="$ASAN_OPTIONS,allow_user_segv_handler=1"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ x$extra_options != x ]] ; then
|
if [[ x$extra_options != x ]] ; then
|
||||||
ASAN_OPTIONS="$ASAN_OPTIONS,$extra_options"
|
ASAN_OPTIONS="$ASAN_OPTIONS,$extra_options"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -251,8 +251,7 @@ TEST(AddressSanitizer, BitFieldNegativeTest) {
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
const char kSEGVCrash[] = "AddressSanitizer: SEGV on unknown address";
|
const char kSEGVCrash[] = "AddressSanitizer: SEGV on unknown address";
|
||||||
const char kOverriddenSigactionHandler[] = "Test sigaction handler\n";
|
const char kOverriddenHandler[] = "ASan signal handler has been overridden\n";
|
||||||
const char kOverriddenSignalHandler[] = "Test signal handler\n";
|
|
||||||
|
|
||||||
TEST(AddressSanitizer, WildAddressTest) {
|
TEST(AddressSanitizer, WildAddressTest) {
|
||||||
char *c = (char*)0x123;
|
char *c = (char*)0x123;
|
||||||
|
@ -260,12 +259,12 @@ TEST(AddressSanitizer, WildAddressTest) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void my_sigaction_sighandler(int, siginfo_t*, void*) {
|
void my_sigaction_sighandler(int, siginfo_t*, void*) {
|
||||||
fprintf(stderr, kOverriddenSigactionHandler);
|
fprintf(stderr, kOverriddenHandler);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void my_signal_sighandler(int signum) {
|
void my_signal_sighandler(int signum) {
|
||||||
fprintf(stderr, kOverriddenSignalHandler);
|
fprintf(stderr, kOverriddenHandler);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -274,20 +273,16 @@ TEST(AddressSanitizer, SignalTest) {
|
||||||
memset(&sigact, 0, sizeof(sigact));
|
memset(&sigact, 0, sizeof(sigact));
|
||||||
sigact.sa_sigaction = my_sigaction_sighandler;
|
sigact.sa_sigaction = my_sigaction_sighandler;
|
||||||
sigact.sa_flags = SA_SIGINFO;
|
sigact.sa_flags = SA_SIGINFO;
|
||||||
char *c = (char *)0x123;
|
// ASan should silently ignore sigaction()...
|
||||||
|
|
||||||
EXPECT_DEATH(*c = 0, kSEGVCrash);
|
|
||||||
|
|
||||||
// ASan should allow to set sigaction()...
|
|
||||||
EXPECT_EQ(0, sigaction(SIGSEGV, &sigact, 0));
|
EXPECT_EQ(0, sigaction(SIGSEGV, &sigact, 0));
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
EXPECT_EQ(0, sigaction(SIGBUS, &sigact, 0));
|
EXPECT_EQ(0, sigaction(SIGBUS, &sigact, 0));
|
||||||
#endif
|
#endif
|
||||||
EXPECT_DEATH(*c = 0, kOverriddenSigactionHandler);
|
char *c = (char*)0x123;
|
||||||
|
EXPECT_DEATH(*c = 0, kSEGVCrash);
|
||||||
// ... and signal().
|
// ... and signal().
|
||||||
EXPECT_NE(SIG_ERR, signal(SIGSEGV, my_signal_sighandler));
|
EXPECT_EQ(0, signal(SIGSEGV, my_signal_sighandler));
|
||||||
EXPECT_DEATH(*c = 0, kOverriddenSignalHandler);
|
EXPECT_DEATH(*c = 0, kSEGVCrash);
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -92,7 +92,7 @@ COMMON_FLAG(HandleSignalMode, handle_sigill, kHandleSignalNo,
|
||||||
COMMON_FLAG(HandleSignalMode, handle_sigfpe, kHandleSignalYes,
|
COMMON_FLAG(HandleSignalMode, handle_sigfpe, kHandleSignalYes,
|
||||||
COMMON_FLAG_HANDLE_SIGNAL_HELP(SIGFPE))
|
COMMON_FLAG_HANDLE_SIGNAL_HELP(SIGFPE))
|
||||||
#undef COMMON_FLAG_HANDLE_SIGNAL_HELP
|
#undef COMMON_FLAG_HANDLE_SIGNAL_HELP
|
||||||
COMMON_FLAG(bool, allow_user_segv_handler, true,
|
COMMON_FLAG(bool, allow_user_segv_handler, false,
|
||||||
"If set, allows user to register a SEGV handler even if the tool "
|
"If set, allows user to register a SEGV handler even if the tool "
|
||||||
"registers one.")
|
"registers one.")
|
||||||
COMMON_FLAG(bool, use_sigaltstack, true,
|
COMMON_FLAG(bool, use_sigaltstack, true,
|
||||||
|
|
Loading…
Reference in New Issue