Revert "[compiler-rt][asan] Make wild-pointer crash error more useful"

This reverts commit f65e1aee40.
This commit is contained in:
Vy Nguyen 2021-03-11 22:06:37 -05:00
parent 5908c7ca41
commit c578508b5b
3 changed files with 5 additions and 39 deletions

View File

@ -77,6 +77,7 @@ static bool GetShadowKind(uptr addr, ShadowKind *shadow_kind) {
} else if (AddrIsInLowShadow(addr)) { } else if (AddrIsInLowShadow(addr)) {
*shadow_kind = kShadowKindLow; *shadow_kind = kShadowKindLow;
} else { } else {
CHECK(0 && "Address is not in memory and not in shadow?");
return false; return false;
} }
return true; return true;
@ -463,13 +464,7 @@ AddressDescription::AddressDescription(uptr addr, uptr access_size,
return; return;
} }
data.kind = kAddressKindWild; data.kind = kAddressKindWild;
data.wild.addr = addr; addr = 0;
data.wild.access_size = access_size;
}
void WildAddressDescription::Print() const {
Printf("Address %p is a wild pointer inside of access range of size %p.\n",
addr, access_size);
} }
void PrintAddressDescription(uptr addr, uptr access_size, void PrintAddressDescription(uptr addr, uptr access_size,

View File

@ -146,13 +146,6 @@ struct StackAddressDescription {
bool GetStackAddressInformation(uptr addr, uptr access_size, bool GetStackAddressInformation(uptr addr, uptr access_size,
StackAddressDescription *descr); StackAddressDescription *descr);
struct WildAddressDescription {
uptr addr;
uptr access_size;
void Print() const;
};
struct GlobalAddressDescription { struct GlobalAddressDescription {
uptr addr; uptr addr;
// Assume address is close to at most four globals. // Assume address is close to at most four globals.
@ -200,7 +193,7 @@ class AddressDescription {
HeapAddressDescription heap; HeapAddressDescription heap;
StackAddressDescription stack; StackAddressDescription stack;
GlobalAddressDescription global; GlobalAddressDescription global;
WildAddressDescription wild; uptr addr;
}; };
}; };
@ -218,7 +211,7 @@ class AddressDescription {
uptr Address() const { uptr Address() const {
switch (data.kind) { switch (data.kind) {
case kAddressKindWild: case kAddressKindWild:
return data.wild.addr; return data.addr;
case kAddressKindShadow: case kAddressKindShadow:
return data.shadow.addr; return data.shadow.addr;
case kAddressKindHeap: case kAddressKindHeap:
@ -233,7 +226,7 @@ class AddressDescription {
void Print(const char *bug_descr = nullptr) const { void Print(const char *bug_descr = nullptr) const {
switch (data.kind) { switch (data.kind) {
case kAddressKindWild: case kAddressKindWild:
data.wild.Print(); Printf("Address %p is a wild pointer.\n", data.addr);
return; return;
case kAddressKindShadow: case kAddressKindShadow:
return data.shadow.Print(); return data.shadow.Print();

View File

@ -1,22 +0,0 @@
// RUN: %clangxx_asan %s -o %t
// RUN: not %run %t 2>&1 | FileCheck %s
// REQUIRES: asan-64-bits
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
int main() {
char *p = new char;
char *dest = new char;
const size_t offset = 0x4567890123456789;
// Flush it so the output came out before the asan report.
fprintf(stderr, "Expected bad addr: %p\n", p + offset);
fflush(stderr);
memmove(dest, p, offset);
return 0;
}
// CHECK: Expected bad addr: [[ADDR:0x[0-9,a-f]+]]
// CHECK: AddressSanitizer: unknown-crash on address [[ADDR]]
// CHECK: Address [[ADDR]] is a wild pointer inside of access range of size 0x4567890123456789