[llvm-commits] [compiler-rt] r154803 - /compiler-rt/trunk/lib/asan/asan_interceptors.cc

Alexander Potapenko glider at google.com
Mon Apr 16 01:33:01 PDT 2012


Author: glider
Date: Mon Apr 16 03:33:01 2012
New Revision: 154803

URL: http://llvm.org/viewvc/llvm-project?rev=154803&view=rev
Log:
Partially revert r154390 (http://llvm.org/viewvc/llvm-project?view=rev&revision=154390)
Until we work out the solution for http://code.google.com/p/address-sanitizer/issues/detail?id=65 we'd better not allow
the clients to override AddressSanitizer's signal handler.

The second part of r154390 (removing the sighandler-related tests) is not reverted, because those tests were broken
and didn't test anything.

Modified:
    compiler-rt/trunk/lib/asan/asan_interceptors.cc

Modified: compiler-rt/trunk/lib/asan/asan_interceptors.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_interceptors.cc?rev=154803&r1=154802&r2=154803&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_interceptors.cc (original)
+++ compiler-rt/trunk/lib/asan/asan_interceptors.cc Mon Apr 16 03:33:01 2012
@@ -339,21 +339,19 @@
 #endif  // !_WIN32
 
 #if ASAN_INTERCEPT_SIGNAL_AND_SIGACTION
-const char kOverrideSighandlerWarning[] =
-    "Warning: client program overrides the handler for signal %d.\n";
 INTERCEPTOR(void*, signal, int signum, void *handler) {
-  if (AsanInterceptsSignal(signum)) {
-    Report(kOverrideSighandlerWarning, signum);
+  if (!AsanInterceptsSignal(signum)) {
+    return REAL(signal)(signum, handler);
   }
-  return REAL(signal)(signum, handler);
+  return NULL;
 }
 
 INTERCEPTOR(int, sigaction, int signum, const struct sigaction *act,
                             struct sigaction *oldact) {
-  if (AsanInterceptsSignal(signum)) {
-    Report(kOverrideSighandlerWarning, signum);
+  if (!AsanInterceptsSignal(signum)) {
+    return REAL(sigaction)(signum, act, oldact);
   }
-  return REAL(sigaction)(signum, act, oldact);
+  return 0;
 }
 #elif ASAN_POSIX
 // We need to have defined REAL(sigaction) on posix systems.





More information about the llvm-commits mailing list