From e487713a21f780bf7150f86f42718be4d0342beb Mon Sep 17 00:00:00 2001 From: usama hameed Date: Wed, 7 Jun 2023 14:29:53 -0700 Subject: [PATCH] [Sanitizers] UUID/Build ID is 16 bytes on Darwin. https://reviews.llvm.org/D114294 changed the kModuleUUIDSize from 16 to 32 for all platforms. This is not true for Darwin where the UUID is 16 bytes. Differential Revision: https://reviews.llvm.org/D152309 rdar://110346025 --- compiler-rt/lib/sanitizer_common/sanitizer_common.h | 4 ++++ compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt | 1 + .../lib/sanitizer_common/tests/sanitizer_module_uuid_size.cpp | 10 ++++++++++ 3 files changed, 15 insertions(+) create mode 100644 compiler-rt/lib/sanitizer_common/tests/sanitizer_module_uuid_size.cpp diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_common.h b/compiler-rt/lib/sanitizer_common/sanitizer_common.h index 302b443..b275583 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_common.h +++ b/compiler-rt/lib/sanitizer_common/sanitizer_common.h @@ -796,7 +796,11 @@ inline const char *ModuleArchToString(ModuleArch arch) { return ""; } +#if SANITIZER_APPLE +const uptr kModuleUUIDSize = 16; +#else const uptr kModuleUUIDSize = 32; +#endif const uptr kMaxSegName = 16; // Represents a binary loaded into virtual memory (e.g. this can be an diff --git a/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt b/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt index dad90cd..ec0f1d2 100644 --- a/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt +++ b/compiler-rt/lib/sanitizer_common/tests/CMakeLists.txt @@ -31,6 +31,7 @@ set(SANITIZER_UNITTESTS sanitizer_list_test.cpp sanitizer_lzw_test.cpp sanitizer_mac_test.cpp + sanitizer_module_uuid_size.cpp sanitizer_mutex_test.cpp sanitizer_nolibc_test.cpp sanitizer_posix_test.cpp diff --git a/compiler-rt/lib/sanitizer_common/tests/sanitizer_module_uuid_size.cpp b/compiler-rt/lib/sanitizer_common/tests/sanitizer_module_uuid_size.cpp new file mode 100644 index 0000000..feb17dc --- /dev/null +++ b/compiler-rt/lib/sanitizer_common/tests/sanitizer_module_uuid_size.cpp @@ -0,0 +1,10 @@ +#include "sanitizer_common/sanitizer_common.h" +#include "gtest/gtest.h" + +TEST(ModuleUUID, kModuleUUIDSize) { +#if SANITIZER_APPLE + EXPECT_EQ(__sanitizer::kModuleUUIDSize, 16ULL); +#else + EXPECT_EQ(__sanitizer::kModuleUUIDSize, 32ULL); +#endif +} -- 2.7.4