Merge "Add some MTE-related helpers." am: 4fe5b783a4 am: 4904c919a5 am: 4931c8b349

Change-Id: I3cbb2e528fe4e4d833c98ed296e7f950a22dcf86
diff --git a/libc/bionic/fdtrack.cpp b/libc/bionic/fdtrack.cpp
index 1123512..38eb219 100644
--- a/libc/bionic/fdtrack.cpp
+++ b/libc/bionic/fdtrack.cpp
@@ -28,7 +28,8 @@
 
 #include <stdatomic.h>
 
-#include <platform/bionic/fdtrack.h>
+#include <android/fdtrack.h>
+
 #include <platform/bionic/reserved_signals.h>
 
 #include "private/bionic_fdtrack.h"
diff --git a/libc/platform/bionic/fdtrack.h b/libc/include/android/fdtrack.h
similarity index 100%
rename from libc/platform/bionic/fdtrack.h
rename to libc/include/android/fdtrack.h
diff --git a/libc/libc.map.txt b/libc/libc.map.txt
index 2ca4b21..dddd84c 100644
--- a/libc/libc.map.txt
+++ b/libc/libc.map.txt
@@ -1484,6 +1484,9 @@
   global:
     __mempcpy_chk;
     __tls_get_addr; # arm64
+    android_fdtrack_compare_exchange_hook;
+    android_fdtrack_get_enabled;
+    android_fdtrack_set_enabled;
     call_once;
     cnd_broadcast;
     cnd_destroy;
@@ -1752,9 +1755,6 @@
     __system_property_set_filename;
     __system_property_update;
     android_fdsan_get_fd_table;
-    android_fdtrack_compare_exchange_hook; # llndk
-    android_fdtrack_get_enabled; # llndk
-    android_fdtrack_set_enabled; # llndk
     android_net_res_stats_get_info_for_net;
     android_net_res_stats_aggregate;
     android_net_res_stats_get_usable_servers;
diff --git a/libc/private/bionic_fdtrack.h b/libc/private/bionic_fdtrack.h
index 174ba1d..ddf7249 100644
--- a/libc/private/bionic_fdtrack.h
+++ b/libc/private/bionic_fdtrack.h
@@ -31,7 +31,7 @@
 #include <sys/cdefs.h>
 #include <stdatomic.h>
 
-#include "platform/bionic/fdtrack.h"
+#include <android/fdtrack.h>
 
 #include "bionic/pthread_internal.h"
 #include "private/bionic_tls.h"
diff --git a/libfdtrack/fdtrack.cpp b/libfdtrack/fdtrack.cpp
index 831a50d..7c4cfbf 100644
--- a/libfdtrack/fdtrack.cpp
+++ b/libfdtrack/fdtrack.cpp
@@ -32,8 +32,7 @@
 #include <mutex>
 #include <vector>
 
-#include <android/fdsan.h>
-#include <bionic/fdtrack.h>
+#include <android/fdtrack.h>
 
 #include <android-base/no_destructor.h>
 #include <android-base/thread_annotations.h>
@@ -111,32 +110,18 @@
       continue;
     }
 
-    if (!entry->mutex.try_lock()) {
-      async_safe_format_log(ANDROID_LOG_WARN, "fdtrack", "fd %d locked, skipping", fd);
-      continue;
-    }
-
+    std::lock_guard<std::mutex> lock(entry->mutex);
     if (entry->backtrace.empty()) {
       continue;
     }
 
-    uint64_t fdsan_owner = android_fdsan_get_owner_tag(fd);
-
-    if (fdsan_owner != 0) {
-      async_safe_format_log(ANDROID_LOG_INFO, "fdtrack", "fd %d: (owner = %#" PRIx64 ")", fd,
-                            fdsan_owner);
-    } else {
-      async_safe_format_log(ANDROID_LOG_INFO, "fdtrack", "fd %d: (unowned)", fd);
-    }
-
+    async_safe_format_log(ANDROID_LOG_INFO, "fdtrack", "fd %d:", fd);
     const size_t frame_skip = 2;
     for (size_t i = frame_skip; i < entry->backtrace.size(); ++i) {
       auto& frame = entry->backtrace[i];
       async_safe_format_log(ANDROID_LOG_INFO, "fdtrack", "  %zu: %s+%" PRIu64, i - frame_skip,
                             frame.function_name.c_str(), frame.function_offset);
     }
-
-    entry->mutex.unlock();
   }
   android_fdtrack_set_enabled(prev);
 }
diff --git a/tests/fdtrack_test.cpp b/tests/fdtrack_test.cpp
index fca92ce..a616e6f 100644
--- a/tests/fdtrack_test.cpp
+++ b/tests/fdtrack_test.cpp
@@ -25,7 +25,7 @@
 #include <unistd.h>
 
 #if defined(__BIONIC__)
-#include "platform/bionic/fdtrack.h"
+#include <android/fdtrack.h>
 #endif
 
 #include <vector>