From c8a2882a97e2efb02934dcc279f1e3e302982762 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Thu, 5 Dec 2019 10:41:37 -0800 Subject: [PATCH] scudo: Fix one of the C wrapper tests on Android. The test ScudoWrappersCTest.Realloc expects realloc of memalign to work on Android, but this relies on dealloc_type_mismatch being set to false. Commit 0d3d4d3b0 caused us to start setting it to true in the C wrapper tests, which broke the test. Set it to the correct value on Android. Differential Revision: https://reviews.llvm.org/D71078 --- .../lib/scudo/standalone/tests/scudo_unit_test_main.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/compiler-rt/lib/scudo/standalone/tests/scudo_unit_test_main.cpp b/compiler-rt/lib/scudo/standalone/tests/scudo_unit_test_main.cpp index e771924..20deca9 100644 --- a/compiler-rt/lib/scudo/standalone/tests/scudo_unit_test_main.cpp +++ b/compiler-rt/lib/scudo/standalone/tests/scudo_unit_test_main.cpp @@ -8,6 +8,14 @@ #include "tests/scudo_unit_test.h" +// Match Android's default configuration, which disables Scudo's mismatch +// allocation check, as it is being triggered by some third party code. +#if SCUDO_ANDROID +#define DEALLOC_TYPE_MISMATCH "false" +#else +#define DEALLOC_TYPE_MISMATCH "true" +#endif + // This allows us to turn on/off a Quarantine for specific tests. The Quarantine // parameters are on the low end, to avoid having to loop excessively in some // tests. @@ -15,9 +23,10 @@ bool UseQuarantine = true; extern "C" __attribute__((visibility("default"))) const char * __scudo_default_options() { if (!UseQuarantine) - return "dealloc_type_mismatch=true"; + return "dealloc_type_mismatch=" DEALLOC_TYPE_MISMATCH; return "quarantine_size_kb=256:thread_local_quarantine_size_kb=128:" - "quarantine_max_chunk_size=512:dealloc_type_mismatch=true"; + "quarantine_max_chunk_size=512:" + "dealloc_type_mismatch=" DEALLOC_TYPE_MISMATCH; } int main(int argc, char **argv) { -- 2.7.4