[NFC][HWASAN] Add more pthread interceptors
authorVitaly Buka <vitalybuka@google.com>
Sun, 7 May 2023 23:12:04 +0000 (16:12 -0700)
committerVitaly Buka <vitalybuka@google.com>
Sun, 7 May 2023 23:23:01 +0000 (16:23 -0700)
They are empty for now. Follow up patches will introduce behaviour
changes.

compiler-rt/lib/hwasan/hwasan_interceptors.cpp

index 299cf371e32a54d81428e982fdd2dec1f7ecd81e..d5866b8b94b0511af345846feca756c459774d4b 100644 (file)
@@ -77,6 +77,25 @@ INTERCEPTOR(int, pthread_join, void *t, void **arg) {
   return REAL(pthread_join)(t, arg);
 }
 
+INTERCEPTOR(int, pthread_detach, void *thread) {
+  return REAL(pthread_detach)(thread);
+}
+
+INTERCEPTOR(int, pthread_exit, void *retval) {
+  return REAL(pthread_exit)(retval);
+}
+
+#    if SANITIZER_GLIBC
+INTERCEPTOR(int, pthread_tryjoin_np, void *thread, void **ret) {
+  return REAL(pthread_tryjoin_np)(thread, ret);
+}
+
+INTERCEPTOR(int, pthread_timedjoin_np, void *thread, void **ret,
+            const struct timespec *abstime) {
+  return REAL(pthread_timedjoin_np)(thread, ret, abstime);
+}
+#    endif
+
 DEFINE_REAL_PTHREAD_FUNCTIONS
 
 DEFINE_REAL(int, vfork)
@@ -271,6 +290,12 @@ void InitializeInterceptors() {
 #    endif  // __linux__
   INTERCEPT_FUNCTION(pthread_create);
   INTERCEPT_FUNCTION(pthread_join);
+  INTERCEPT_FUNCTION(pthread_detach);
+  INTERCEPT_FUNCTION(pthread_exit);
+#    if SANITIZER_GLIBC
+  INTERCEPT_FUNCTION(pthread_tryjoin_np);
+  INTERCEPT_FUNCTION(pthread_timedjoin_np);
+#    endif
 #  endif
 
   inited = 1;