[compiler-rt] 6897111 - [MSan] Add COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED

Ilya Leoshkevich via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 3 08:19:17 PDT 2020


Author: Ilya Leoshkevich
Date: 2020-04-03T17:18:53+02:00
New Revision: 6897111231e7be8886fedc7d6ab02436a901323d

URL: https://github.com/llvm/llvm-project/commit/6897111231e7be8886fedc7d6ab02436a901323d
DIFF: https://github.com/llvm/llvm-project/commit/6897111231e7be8886fedc7d6ab02436a901323d.diff

LOG: [MSan] Add COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED

Summary:
MSan not implementing COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED looks
like an omission - this macro makes it possible for those intercepted
functions, which libc needs very early, to work before interceptors are
initialized (i.e. before REAL() is usable).

While currently there are no observable practical problems in this
area, changes in libc or in MSan runtime may provoke them. Therefore,
change MSan to work like ASan and TSan already do - use internal
functions in certain interceptors when initialization is not complete.

Reviewers: eugenis, vitalybuka

Reviewed By: eugenis

Subscribers: #sanitizers

Tags: #sanitizers

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

Added: 
    

Modified: 
    compiler-rt/lib/msan/msan_interceptors.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/msan/msan_interceptors.cpp b/compiler-rt/lib/msan/msan_interceptors.cpp
index 9b1340b0104e..6459c7a593eb 100644
--- a/compiler-rt/lib/msan/msan_interceptors.cpp
+++ b/compiler-rt/lib/msan/msan_interceptors.cpp
@@ -1304,6 +1304,8 @@ int OnExit() {
       ForEachMappedRegion(map, __msan_unpoison);                               \
   } while (false)
 
+#define COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED (!msan_inited)
+
 #define COMMON_INTERCEPTOR_GET_TLS_RANGE(begin, end)                           \
   if (MsanThread *t = GetCurrentThread()) {                                    \
     *begin = t->tls_begin();                                                   \


        


More information about the llvm-commits mailing list