[compiler-rt] r336046 - [asan] Use MADV_NOCORE for use_madv_dontdump on FreeBSD.

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 30 01:27:48 PDT 2018


Author: maskray
Date: Sat Jun 30 01:27:48 2018
New Revision: 336046

URL: http://llvm.org/viewvc/llvm-project?rev=336046&view=rev
Log:
[asan] Use MADV_NOCORE for use_madv_dontdump on FreeBSD.

Currently in FreeBSD 12.0-CURRENT with trunk clang+compiler-rt, faulty -fsanitize=address executable hangs at 'urdlck' state.

Ka Ho Ng has verified that by backporting this to llvm 6.0.1, with use_madv_dontdump=1, shadow memory is not dumped.

ASAN_OPTIONS=abort_on_error=1:disable_coredump=0:use_madv_dontdump=1 ./a

Reviewers: dimitry, kcc, dvyukov, emaste, khng300

Subscribers: kubamracek, delcypher, llvm-commits, #sanitizers

Differential Revision: https://reviews.llvm.org/D48257

Modified:
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc?rev=336046&r1=336045&r2=336046&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc Sat Jun 30 01:27:48 2018
@@ -78,8 +78,10 @@ bool NoHugePagesInRegion(uptr addr, uptr
 }
 
 bool DontDumpShadowMemory(uptr addr, uptr length) {
-#ifdef MADV_DONTDUMP
+#if defined(MADV_DONTDUMP)
   return madvise((void *)addr, length, MADV_DONTDUMP) == 0;
+#elif defined(MADV_NOCORE)
+  return madvise((void *)addr, length, MADV_NOCORE) == 0;
 #else
   return true;
 #endif  // MADV_DONTDUMP




More information about the llvm-commits mailing list