[compiler-rt] r340957 - [sanitizer] Revert D50940

Kostya Kortchinsky via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 29 12:41:28 PDT 2018


Author: cryptoad
Date: Wed Aug 29 12:41:28 2018
New Revision: 340957

URL: http://llvm.org/viewvc/llvm-project?rev=340957&view=rev
Log:
[sanitizer] Revert D50940

Summary:
The previous version of the patch makes some code unable to distinguish
failure to map address 0 and error.
Revert to turn the bots back to green while figuring out a new approach.

Reviewers: eugenis

Reviewed By: eugenis

Subscribers: kubamracek, delcypher, #sanitizers, llvm-commits

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

Modified:
    compiler-rt/trunk/lib/asan/asan_linux.cc
    compiler-rt/trunk/lib/asan/asan_premap_shadow.cc
    compiler-rt/trunk/lib/hwasan/hwasan_dynamic_shadow.cc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_allocator_primary64.h
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac_libcdep.cc
    compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc
    compiler-rt/trunk/lib/scudo/scudo_allocator_secondary.h

Modified: compiler-rt/trunk/lib/asan/asan_linux.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_linux.cc?rev=340957&r1=340956&r2=340957&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_linux.cc (original)
+++ compiler-rt/trunk/lib/asan/asan_linux.cc Wed Aug 29 12:41:28 2018
@@ -126,7 +126,7 @@ uptr FindDynamicShadowStart() {
   uptr map_size = shadow_size + left_padding + alignment;
 
   uptr map_start = (uptr)MmapNoAccess(map_size);
-  CHECK(map_start);
+  CHECK_NE(map_start, ~(uptr)0);
 
   uptr shadow_start = RoundUpTo(map_start + left_padding, alignment);
   UnmapFromTo(map_start, shadow_start - left_padding);

Modified: compiler-rt/trunk/lib/asan/asan_premap_shadow.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_premap_shadow.cc?rev=340957&r1=340956&r2=340957&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_premap_shadow.cc (original)
+++ compiler-rt/trunk/lib/asan/asan_premap_shadow.cc Wed Aug 29 12:41:28 2018
@@ -40,7 +40,7 @@ uptr PremapShadow() {
   uptr map_size = shadow_size + left_padding + alignment;
 
   uptr map_start = (uptr)MmapNoAccess(map_size);
-  CHECK(map_start);
+  CHECK_NE(map_start, ~(uptr)0);
 
   uptr shadow_start = RoundUpTo(map_start + left_padding, alignment);
   uptr shadow_end = shadow_start + shadow_size;

Modified: compiler-rt/trunk/lib/hwasan/hwasan_dynamic_shadow.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/hwasan/hwasan_dynamic_shadow.cc?rev=340957&r1=340956&r2=340957&view=diff
==============================================================================
--- compiler-rt/trunk/lib/hwasan/hwasan_dynamic_shadow.cc (original)
+++ compiler-rt/trunk/lib/hwasan/hwasan_dynamic_shadow.cc Wed Aug 29 12:41:28 2018
@@ -46,7 +46,7 @@ static uptr MapDynamicShadow(uptr shadow
   const uptr map_size = shadow_size + left_padding + alignment;
 
   const uptr map_start = (uptr)MmapNoAccess(map_size);
-  CHECK(map_start);
+  CHECK_NE(map_start, ~(uptr)0);
 
   const uptr shadow_start = RoundUpTo(map_start + left_padding, alignment);
 

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_allocator_primary64.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_allocator_primary64.h?rev=340957&r1=340956&r2=340957&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_allocator_primary64.h (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_allocator_primary64.h Wed Aug 29 12:41:28 2018
@@ -77,7 +77,7 @@ class SizeClassAllocator64 {
     } else {
       NonConstSpaceBeg = address_range.Init(TotalSpaceSize,
                                             PrimaryAllocatorName);
-      CHECK(NonConstSpaceBeg);
+      CHECK_NE(NonConstSpaceBeg, ~(uptr)0);
     }
     SetReleaseToOSIntervalMs(release_to_os_interval_ms);
     MapWithCallbackOrDie(SpaceEnd(), AdditionalSize());

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac_libcdep.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac_libcdep.cc?rev=340957&r1=340956&r2=340957&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac_libcdep.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_mac_libcdep.cc Wed Aug 29 12:41:28 2018
@@ -15,12 +15,14 @@
 #if SANITIZER_MAC
 #include "sanitizer_mac.h"
 
+#include <sys/mman.h>
+
 namespace __sanitizer {
 
 void RestrictMemoryToMaxAddress(uptr max_address) {
   uptr size_to_mmap = GetMaxUserVirtualAddress() + 1 - max_address;
   void *res = MmapFixedNoAccess(max_address, size_to_mmap, "high gap");
-  CHECK(res);
+  CHECK(res != MAP_FAILED);
 }
 
 }  // namespace __sanitizer

Modified: compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc?rev=340957&r1=340956&r2=340957&view=diff
==============================================================================
--- compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc (original)
+++ compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc Wed Aug 29 12:41:28 2018
@@ -387,18 +387,13 @@ void *MmapFixedNoAccess(uptr fixed_addr,
   unsigned flags = MAP_PRIVATE | MAP_FIXED | MAP_NORESERVE;
   if (fd == -1) flags |= MAP_ANON;
 
-  uptr p = internal_mmap((void *)fixed_addr, size, PROT_NONE, flags, fd, 0);
-  if (internal_iserror(p))
-    return nullptr;
-  return (void *)p;
+  return (void *)internal_mmap((void *)fixed_addr, size, PROT_NONE, flags, fd,
+                               0);
 }
 
 void *MmapNoAccess(uptr size) {
   unsigned flags = MAP_PRIVATE | MAP_ANON | MAP_NORESERVE;
-  uptr p = internal_mmap(nullptr, size, PROT_NONE, flags, -1, 0);
-  if (internal_iserror(p))
-    return nullptr;
-  return (void *)p;
+  return (void *)internal_mmap(nullptr, size, PROT_NONE, flags, -1, 0);
 }
 
 // This function is defined elsewhere if we intercepted pthread_attr_getstack.

Modified: compiler-rt/trunk/lib/scudo/scudo_allocator_secondary.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/scudo/scudo_allocator_secondary.h?rev=340957&r1=340956&r2=340957&view=diff
==============================================================================
--- compiler-rt/trunk/lib/scudo/scudo_allocator_secondary.h (original)
+++ compiler-rt/trunk/lib/scudo/scudo_allocator_secondary.h Wed Aug 29 12:41:28 2018
@@ -86,7 +86,7 @@ class LargeMmapAllocator {
 
     ReservedAddressRange AddressRange;
     uptr ReservedBeg = AddressRange.Init(ReservedSize, SecondaryAllocatorName);
-    if (UNLIKELY(!ReservedBeg))
+    if (UNLIKELY(ReservedBeg == ~static_cast<uptr>(0)))
       return nullptr;
     // A page-aligned pointer is assumed after that, so check it now.
     DCHECK(IsAligned(ReservedBeg, PageSize));




More information about the llvm-commits mailing list