Allow for lack of VM_MEMORY_OS_ALLOC_ONCE on Mac OS X (PR sanitizer/82824)
authorRainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Sat, 13 Jan 2018 21:01:27 +0000 (21:01 +0000)
committerRainer Orth <ro@gcc.gnu.org>
Sat, 13 Jan 2018 21:01:27 +0000 (21:01 +0000)
PR sanitizer/82824
* lsan/lsan_common_mac.cc: Cherry-pick upstream r322437.

From-SVN: r256650

libsanitizer/ChangeLog
libsanitizer/lsan/lsan_common_mac.cc

index e5cad19..2f57f6a 100644 (file)
@@ -1,3 +1,8 @@
+2018-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR sanitizer/82824
+       * lsan/lsan_common_mac.cc: Cherry-pick upstream r322437.
+
 2017-12-05  Martin Liska  <mliska@suse.cz>
            Jakub Jelinek  <jakub@redhat.com>
 
index e60b3d0..6e763da 100644 (file)
 
 #include <mach/mach.h>
 
+// Only introduced in Mac OS X 10.9.
+#ifdef VM_MEMORY_OS_ALLOC_ONCE
+static const int kSanitizerVmMemoryOsAllocOnce = VM_MEMORY_OS_ALLOC_ONCE;
+#else
+static const int kSanitizerVmMemoryOsAllocOnce = 73;
+#endif
+
 namespace __lsan {
 
 typedef struct {
@@ -155,7 +162,7 @@ void ProcessPlatformSpecificAllocations(Frontier *frontier) {
 
     // libxpc stashes some pointers in the Kernel Alloc Once page,
     // make sure not to report those as leaks.
-    if (info.user_tag == VM_MEMORY_OS_ALLOC_ONCE) {
+    if (info.user_tag == kSanitizerVmMemoryOsAllocOnce) {
       ScanRangeForPointers(address, end_address, frontier, "GLOBAL",
                            kReachable);