[HWASan] [MTE] disable MTE for HWASan binaries
Bug: 389848256
Test: atest hwasan_test with persist.arm64.memtag.default=sync
Test: atest bionic-unit-tests[-static]
Change-Id: I871932af1ed763e3b7d5f580052a009d5aa02e7d
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 2393f13..742f639 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -3614,14 +3614,7 @@
return kLdConfigFilePath;
}
-
-std::vector<android_namespace_t*> init_default_namespaces(const char* executable_path) {
- g_default_namespace.set_name("(default)");
-
- soinfo* somain = solist_get_somain();
-
- const char *interp = phdr_table_get_interpreter_name(somain->phdr, somain->phnum,
- somain->load_bias);
+void init_sanitizer_mode(const char *interp ) {
const char* bname = (interp != nullptr) ? basename(interp) : nullptr;
g_is_asan = bname != nullptr &&
@@ -3637,7 +3630,13 @@
g_is_hwasan = (bname != nullptr &&
strcmp(bname, "linker_hwasan64") == 0) ||
(hwasan_env != nullptr && !getauxval(AT_SECURE) && strcmp(hwasan_env, "1") == 0);
+ __libc_shared_globals()->is_hwasan = g_is_hwasan;
#endif
+}
+
+std::vector<android_namespace_t*> init_default_namespaces(const char* executable_path) {
+ g_default_namespace.set_name("(default)");
+
const Config* config = nullptr;
{