[sanitizers][windows] FIX: Rtl-Heap Interception and tests
authorMatthew G McGovern <matthew.mcgovern@microsoft.com>
Tue, 9 Jul 2019 01:55:11 +0000 (01:55 +0000)
committerMatthew G McGovern <matthew.mcgovern@microsoft.com>
Tue, 9 Jul 2019 01:55:11 +0000 (01:55 +0000)
   - Adds interceptors for Rtl[Allocate|Free|Size|ReAllocate]Heap
   - Adds unit tests for the new interceptors and expands HeapAlloc
     tests to demonstrate new functionality.
   Reviewed as D62927
   - adds fixes for ~win and x64 tests

> llvm-svn: 365381

llvm-svn: 365424

15 files changed:
compiler-rt/lib/asan/asan_malloc_win.cc
compiler-rt/test/asan/TestCases/Windows/heapalloc.cc
compiler-rt/test/asan/TestCases/Windows/heapalloc_doublefree.cc
compiler-rt/test/asan/TestCases/Windows/heapalloc_flags_fallback.cc
compiler-rt/test/asan/TestCases/Windows/heapalloc_huge.cc
compiler-rt/test/asan/TestCases/Windows/heapalloc_rtl_transfer.cc
compiler-rt/test/asan/TestCases/Windows/heapalloc_transfer.cc
compiler-rt/test/asan/TestCases/Windows/heapalloc_uaf.cc
compiler-rt/test/asan/TestCases/Windows/heapalloc_zero_size.cc
compiler-rt/test/asan/TestCases/Windows/heaprealloc.cc
compiler-rt/test/asan/TestCases/Windows/heaprealloc_alloc_zero.cc
compiler-rt/test/asan/TestCases/Windows/heaprealloc_zero_size.cc
compiler-rt/test/asan/TestCases/Windows/rtlallocateheap.cc
compiler-rt/test/asan/TestCases/Windows/rtlallocateheap_flags_fallback.cc
compiler-rt/test/asan/TestCases/Windows/rtlallocateheap_zero.cc

index 4586beb..89d7003 100644 (file)
@@ -12,6 +12,8 @@
 //===----------------------------------------------------------------------===//
 
 #include "sanitizer_common/sanitizer_allocator_interface.h"
+#include "sanitizer_common/sanitizer_platform.h"
+#if SANITIZER_WINDOWS
 // Need to include defintions for windows heap api functions,
 // these assume windows.h will also be included. This definition
 // fixes an error that's thrown if you only include heapapi.h
@@ -24,8 +26,6 @@
 #endif
 #include <heapapi.h>
 
-#include "sanitizer_common/sanitizer_platform.h"
-#if SANITIZER_WINDOWS
 // Intentionally not including windows.h here, to avoid the risk of
 // pulling in conflicting declarations of these functions. (With mingw-w64,
 // there's a risk of windows.h pulling in stdint.h.)
index 66322a3..30e70c3 100644 (file)
@@ -1,4 +1,4 @@
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 // RUN: %clang_cl_asan -O0 %s -Fe%t
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=true not %run %t 2>&1 | FileCheck %s
 
index dcdf989..9ad5ecc 100644 (file)
@@ -1,6 +1,6 @@
 // RUN: %clang_cl_asan -O0 %s -Fe%t
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=true not %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 #include <cassert>
 #include <windows.h>
 
index eda94ac..d118e2d 100644 (file)
@@ -1,7 +1,7 @@
 // RUN: %clang_cl_asan -O0 %s -Fe%t
 // RUN: %run %t 2>&1 | FileCheck %s
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=true %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 #include <assert.h>
 #include <stdio.h>
 #include <windows.h>
index ce1fd65..3c0feff 100644 (file)
@@ -1,7 +1,7 @@
 // RUN: %clang_cl_asan -O0 %s -Fe%t
 // RUN: %env_asan_opts=allocator_may_return_null=true %run %t
 // RUN: %env_asan_opts=allocator_may_return_null=true:windows_hook_rtl_allocators=true %run %t
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 #include <windows.h>
 int main() {
   void *nope = HeapAlloc(GetProcessHeap(), 0, ((size_t)0) - 1);
index b621270..a36e594 100644 (file)
@@ -5,7 +5,7 @@
 
 // RUN: %clang_cl_asan %s -o%t
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=true %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 
 using AllocateFunctionPtr = PVOID(__stdcall *)(PVOID, ULONG, SIZE_T);
 using ReAllocateFunctionPtr = PVOID(__stdcall *)(PVOID, ULONG, PVOID, SIZE_T);
index b3b5746..497d36b 100644 (file)
@@ -4,7 +4,7 @@
 #include <windows.h>
 // RUN: %clang_cl_asan %s -o%t
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=true %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 
 int main() {
   //owned by rtl
index 00fb3ab..9aee5bb 100644 (file)
@@ -1,6 +1,6 @@
 // RUN: %clang_cl_asan -O0 %s -Fe%t
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=true not %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 #include <windows.h>
 
 int main() {
index 23fc97b..40396ed 100644 (file)
@@ -3,7 +3,7 @@
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=false %run %t 2>&1 | FileCheck %s
 // RUN: %clang_cl /Od -o %t %s
 // RUN: %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 #include <cassert>
 #include <stdio.h>
 #include <windows.h>
index e6efb87..21589cf 100644 (file)
@@ -1,6 +1,6 @@
 // RUN: %clang_cl_asan -O0 %s -Fe%t
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=true not %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 #include <stdio.h>
 #include <windows.h>
 
index 76ae896..7b1272e 100644 (file)
@@ -1,6 +1,6 @@
 // RUN: %clang_cl_asan /Od /MT -o %t %s
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=true %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 #include <cassert>
 #include <iostream>
 #include <windows.h>
index ad2478b..96bc9b9 100644 (file)
@@ -3,7 +3,7 @@
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=false %run %t 2>&1 | FileCheck %s
 // RUN: %clang_cl /Od -o %t %s
 // RUN: %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 #include <cassert>
 #include <stdio.h>
 #include<windows.h>
index 5831fe2..27738e9 100644 (file)
@@ -1,6 +1,6 @@
 // RUN: %clang_cl_asan -O0 %s -Fe%t /MD
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=true not %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 // REQUIRES: asan-rtl-heap-interception
 
 #include <stdio.h>
index c377fe3..738bf0f 100644 (file)
@@ -1,6 +1,6 @@
 // RUN: %clang_cl_asan -O0 %s -Fe%t /MD
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=true %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 // REQUIRES: asan-rtl-heap-interception
 
 #include <assert.h>
index d4bde78..ef372a1 100644 (file)
@@ -1,6 +1,6 @@
 // RUN: %clang_cl_asan -O0 %s -Fe%t /MD
 // RUN: %env_asan_opts=windows_hook_rtl_allocators=true not %run %t 2>&1 | FileCheck %s
-// XFAIL: asan-64-bits
+// UNSUPPORTED: asan-64-bits
 // REQUIRES: asan-rtl-heap-interception
 
 #include <assert.h>