Skip to content

Commit

Permalink
[sanitizer] Revert D50940
Browse files Browse the repository at this point in the history
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

llvm-svn: 340957
  • Loading branch information
Kostya Kortchinsky committed Aug 29, 2018
1 parent 39a4724 commit 65e1bcf
Show file tree
Hide file tree
Showing 7 changed files with 11 additions and 14 deletions.
2 changes: 1 addition & 1 deletion compiler-rt/lib/asan/asan_linux.cc
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion compiler-rt/lib/asan/asan_premap_shadow.cc
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion compiler-rt/lib/hwasan/hwasan_dynamic_shadow.cc
Expand Up @@ -46,7 +46,7 @@ static uptr MapDynamicShadow(uptr shadow_size_bytes) {
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);

Expand Down
Expand Up @@ -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());
Expand Down
4 changes: 3 additions & 1 deletion compiler-rt/lib/sanitizer_common/sanitizer_mac_libcdep.cc
Expand Up @@ -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
Expand Down
11 changes: 3 additions & 8 deletions compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc
Expand Up @@ -387,18 +387,13 @@ void *MmapFixedNoAccess(uptr fixed_addr, uptr size, const char *name) {
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.
Expand Down
2 changes: 1 addition & 1 deletion compiler-rt/lib/scudo/scudo_allocator_secondary.h
Expand Up @@ -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));
Expand Down

0 comments on commit 65e1bcf

Please sign in to comment.