@@ -33,104 +33,104 @@ void InitializePlatformInterceptors();
3333
3434// Use macro to describe if specific function should be
3535// intercepted on a given platform.
36- #if !SANITIZER_WINDOWS
37- # define ASAN_INTERCEPT__LONGJMP 1
38- # define ASAN_INTERCEPT_INDEX 1
39- # define ASAN_INTERCEPT_PTHREAD_CREATE 1
40- #else
41- # define ASAN_INTERCEPT__LONGJMP 0
42- # define ASAN_INTERCEPT_INDEX 0
43- # define ASAN_INTERCEPT_PTHREAD_CREATE 0
44- #endif
45-
46- #if SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_NETBSD || \
47- SANITIZER_SOLARIS
48- # define ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX 1
49- #else
50- # define ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX 0
51- #endif
52-
53- #if SANITIZER_GLIBC || SANITIZER_SOLARIS
54- # define ASAN_INTERCEPT_SWAPCONTEXT 1
55- #else
56- # define ASAN_INTERCEPT_SWAPCONTEXT 0
57- #endif
58-
59- #if !SANITIZER_WINDOWS
60- # define ASAN_INTERCEPT_SIGLONGJMP 1
61- #else
62- # define ASAN_INTERCEPT_SIGLONGJMP 0
63- #endif
64-
65- #if SANITIZER_GLIBC
66- # define ASAN_INTERCEPT___LONGJMP_CHK 1
67- #else
68- # define ASAN_INTERCEPT___LONGJMP_CHK 0
69- #endif
70-
71- #if ASAN_HAS_EXCEPTIONS && !SANITIZER_SOLARIS && !SANITIZER_NETBSD && \
72- (!SANITIZER_WINDOWS || (defined (__MINGW32__) && defined (__i386__)))
73- # define ASAN_INTERCEPT___CXA_THROW 1
74- # define ASAN_INTERCEPT___CXA_RETHROW_PRIMARY_EXCEPTION 1
75- # if defined(_GLIBCXX_SJLJ_EXCEPTIONS) || (SANITIZER_IOS && defined(__arm__))
76- # define ASAN_INTERCEPT__UNWIND_SJLJ_RAISEEXCEPTION 1
77- # else
78- # define ASAN_INTERCEPT__UNWIND_RAISEEXCEPTION 1
79- # endif
80- #else
81- # define ASAN_INTERCEPT___CXA_THROW 0
82- # define ASAN_INTERCEPT___CXA_RETHROW_PRIMARY_EXCEPTION 0
83- # define ASAN_INTERCEPT__UNWIND_RAISEEXCEPTION 0
84- # define ASAN_INTERCEPT__UNWIND_SJLJ_RAISEEXCEPTION 0
85- #endif
86-
87- #if !SANITIZER_WINDOWS
88- # define ASAN_INTERCEPT___CXA_ATEXIT 1
89- #else
90- # define ASAN_INTERCEPT___CXA_ATEXIT 0
91- #endif
92-
93- #if SANITIZER_NETBSD
94- # define ASAN_INTERCEPT_ATEXIT 1
95- #else
96- # define ASAN_INTERCEPT_ATEXIT 0
97- #endif
98-
99- #if SANITIZER_GLIBC
100- # define ASAN_INTERCEPT___STRDUP 1
101- #else
102- # define ASAN_INTERCEPT___STRDUP 0
103- #endif
104-
105- #if SANITIZER_GLIBC && ASAN_INTERCEPT_PTHREAD_CREATE
106- # define ASAN_INTERCEPT_TIMEDJOIN 1
107- # define ASAN_INTERCEPT_TRYJOIN 1
108- #else
109- # define ASAN_INTERCEPT_TIMEDJOIN 0
110- # define ASAN_INTERCEPT_TRYJOIN 0
111- #endif
112-
113- #if SANITIZER_LINUX && \
114- (defined (__arm__) || defined (__aarch64__) || defined (__i386__) || \
115- defined (__x86_64__) || SANITIZER_RISCV64 || SANITIZER_LOONGARCH64)
116- # define ASAN_INTERCEPT_VFORK 1
117- #else
118- # define ASAN_INTERCEPT_VFORK 0
119- #endif
120-
121- #if SANITIZER_NETBSD
122- # define ASAN_INTERCEPT_PTHREAD_ATFORK 1
123- #else
124- # define ASAN_INTERCEPT_PTHREAD_ATFORK 0
125- #endif
126-
127- DECLARE_REAL (int , memcmp, const void * a1, const void * a2, SIZE_T size)
128- DECLARE_REAL(char *, strchr, const char * str, int c)
129- DECLARE_REAL(SIZE_T, strlen, const char * s)
130- DECLARE_REAL(char *, strncpy, char * to, const char * from, SIZE_T size)
131- DECLARE_REAL(SIZE_T, strnlen, const char * s, SIZE_T maxlen)
36+ # if !SANITIZER_WINDOWS
37+ # define ASAN_INTERCEPT__LONGJMP 1
38+ # define ASAN_INTERCEPT_INDEX 1
39+ # define ASAN_INTERCEPT_PTHREAD_CREATE 1
40+ # else
41+ # define ASAN_INTERCEPT__LONGJMP 0
42+ # define ASAN_INTERCEPT_INDEX 0
43+ # define ASAN_INTERCEPT_PTHREAD_CREATE 0
44+ # endif
45+
46+ # if SANITIZER_FREEBSD || SANITIZER_LINUX || SANITIZER_NETBSD || \
47+ SANITIZER_SOLARIS
48+ # define ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX 1
49+ # else
50+ # define ASAN_USE_ALIAS_ATTRIBUTE_FOR_INDEX 0
51+ # endif
52+
53+ # if SANITIZER_GLIBC || SANITIZER_SOLARIS
54+ # define ASAN_INTERCEPT_SWAPCONTEXT 1
55+ # else
56+ # define ASAN_INTERCEPT_SWAPCONTEXT 0
57+ # endif
58+
59+ # if !SANITIZER_WINDOWS
60+ # define ASAN_INTERCEPT_SIGLONGJMP 1
61+ # else
62+ # define ASAN_INTERCEPT_SIGLONGJMP 0
63+ # endif
64+
65+ # if SANITIZER_GLIBC
66+ # define ASAN_INTERCEPT___LONGJMP_CHK 1
67+ # else
68+ # define ASAN_INTERCEPT___LONGJMP_CHK 0
69+ # endif
70+
71+ # if ASAN_HAS_EXCEPTIONS && !SANITIZER_SOLARIS && !SANITIZER_NETBSD && \
72+ (!SANITIZER_WINDOWS || (defined (__MINGW32__) && defined (__i386__)))
73+ # define ASAN_INTERCEPT___CXA_THROW 1
74+ # define ASAN_INTERCEPT___CXA_RETHROW_PRIMARY_EXCEPTION 1
75+ # if defined(_GLIBCXX_SJLJ_EXCEPTIONS) || (SANITIZER_IOS && defined(__arm__))
76+ # define ASAN_INTERCEPT__UNWIND_SJLJ_RAISEEXCEPTION 1
77+ # else
78+ # define ASAN_INTERCEPT__UNWIND_RAISEEXCEPTION 1
79+ # endif
80+ # else
81+ # define ASAN_INTERCEPT___CXA_THROW 0
82+ # define ASAN_INTERCEPT___CXA_RETHROW_PRIMARY_EXCEPTION 0
83+ # define ASAN_INTERCEPT__UNWIND_RAISEEXCEPTION 0
84+ # define ASAN_INTERCEPT__UNWIND_SJLJ_RAISEEXCEPTION 0
85+ # endif
86+
87+ # if !SANITIZER_WINDOWS
88+ # define ASAN_INTERCEPT___CXA_ATEXIT 1
89+ # else
90+ # define ASAN_INTERCEPT___CXA_ATEXIT 0
91+ # endif
92+
93+ # if SANITIZER_NETBSD
94+ # define ASAN_INTERCEPT_ATEXIT 1
95+ # else
96+ # define ASAN_INTERCEPT_ATEXIT 0
97+ # endif
98+
99+ # if SANITIZER_GLIBC
100+ # define ASAN_INTERCEPT___STRDUP 1
101+ # else
102+ # define ASAN_INTERCEPT___STRDUP 0
103+ # endif
104+
105+ # if SANITIZER_GLIBC && ASAN_INTERCEPT_PTHREAD_CREATE
106+ # define ASAN_INTERCEPT_TIMEDJOIN 1
107+ # define ASAN_INTERCEPT_TRYJOIN 1
108+ # else
109+ # define ASAN_INTERCEPT_TIMEDJOIN 0
110+ # define ASAN_INTERCEPT_TRYJOIN 0
111+ # endif
112+
113+ # if SANITIZER_LINUX && \
114+ (defined (__arm__) || defined (__aarch64__) || defined (__i386__) || \
115+ defined (__x86_64__) || SANITIZER_RISCV64 || SANITIZER_LOONGARCH64)
116+ # define ASAN_INTERCEPT_VFORK 1
117+ # else
118+ # define ASAN_INTERCEPT_VFORK 0
119+ # endif
120+
121+ # if SANITIZER_NETBSD
122+ # define ASAN_INTERCEPT_PTHREAD_ATFORK 1
123+ # else
124+ # define ASAN_INTERCEPT_PTHREAD_ATFORK 0
125+ # endif
126+
127+ DECLARE_REAL (int , memcmp, const void * a1, const void * a2, SIZE_T size)
128+ DECLARE_REAL(char *, strchr, const char * str, int c)
129+ DECLARE_REAL(SIZE_T, strlen, const char * s)
130+ DECLARE_REAL(char *, strncpy, char * to, const char * from, SIZE_T size)
131+ DECLARE_REAL(SIZE_T, strnlen, const char * s, SIZE_T maxlen)
132132DECLARE_REAL(SIZE_T, wcsnlen, const wchar_t * s, SIZE_T maxlen)
133- DECLARE_REAL(char *, strstr, const char * s1, const char * s2)
133+ DECLARE_REAL(char *, strstr, const char * s1, const char * s2)
134134
135135# if !SANITIZER_APPLE
136136# define ASAN_INTERCEPT_FUNC (name ) \
@@ -157,11 +157,11 @@ DECLARE_REAL(char*, strstr, const char *s1, const char *s2)
157157# define ASAN_INTERCEPT_FUNC (name )
158158# endif // SANITIZER_APPLE
159159
160- #define ASAN_INTERCEPTOR_ENTER (ctx, func ) \
161- AsanInterceptorContext _ctx = {#func}; \
162- ctx = (void *)&_ctx; \
163- (void ) ctx;
164- #define COMMON_INTERCEPT_FUNCTION (name ) ASAN_INTERCEPT_FUNC(name)
160+ # define ASAN_INTERCEPTOR_ENTER (ctx, func ) \
161+ AsanInterceptorContext _ctx = {#func}; \
162+ ctx = (void *)&_ctx; \
163+ (void )ctx;
164+ # define COMMON_INTERCEPT_FUNCTION (name ) ASAN_INTERCEPT_FUNC(name)
165165
166166#endif // !SANITIZER_FUCHSIA
167167
0 commit comments