[scudo] Handle predefined M_MEMTAG_TUNING_* constants (NFC).
authorEvgenii Stepanov <eugenis@google.com>
Tue, 22 Jun 2021 23:40:17 +0000 (16:40 -0700)
committerEvgenii Stepanov <eugenis@google.com>
Wed, 23 Jun 2021 00:39:55 +0000 (17:39 -0700)
Bionic <malloc.h> may provide the definitions of M_MEMTAG_TUNING_* constants.
Do not redefine them in that case.

Differential Revision: https://reviews.llvm.org/D104758

compiler-rt/lib/scudo/standalone/include/scudo/interface.h

index 0e6cf3d..9b9a846 100644 (file)
@@ -120,7 +120,7 @@ size_t __scudo_get_ring_buffer_size();
 
 // Tune the allocator's choice of memory tags to make it more likely that
 // a certain class of memory errors will be detected. The value argument should
-// be one of the enumerators of the scudo_memtag_tuning enum below.
+// be one of the M_MEMTAG_TUNING_* constants below.
 #ifndef M_MEMTAG_TUNING
 #define M_MEMTAG_TUNING -102
 #endif
@@ -145,13 +145,15 @@ size_t __scudo_get_ring_buffer_size();
 #define M_TSDS_COUNT_MAX -202
 #endif
 
-enum scudo_memtag_tuning {
-  // Tune for buffer overflows.
-  M_MEMTAG_TUNING_BUFFER_OVERFLOW,
+// Tune for buffer overflows.
+#ifndef M_MEMTAG_TUNING_BUFFER_OVERFLOW
+#define M_MEMTAG_TUNING_BUFFER_OVERFLOW 0
+#endif
 
-  // Tune for use-after-free.
-  M_MEMTAG_TUNING_UAF,
-};
+// Tune for use-after-free.
+#ifndef M_MEMTAG_TUNING_UAF
+#define M_MEMTAG_TUNING_UAF 1
+#endif
 
 } // extern "C"