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>