Index: src/sampler.cc |
diff --git a/src/sampler.cc b/src/sampler.cc |
index a01ebaaef86f9a9e7916e5b8902eaa2a02ce4b50..5a7aac71bb31467ce4f1fcccf66fe7ff36b723fb 100644 |
--- a/src/sampler.cc |
+++ b/src/sampler.cc |
@@ -184,7 +184,7 @@ bool IsSamePage(byte* ptr1, byte* ptr2) { |
// Check if the code at specified address could potentially be a |
// frame setup code. |
-DISABLE_ASAN bool IsNoFrameRegion(Address address) { |
+bool IsNoFrameRegion(Address address) { |
struct Pattern { |
int bytes_count; |
byte bytes[8]; |
@@ -219,6 +219,7 @@ DISABLE_ASAN bool IsNoFrameRegion(Address address) { |
for (int* offset_ptr = pattern->offsets; *offset_ptr != -1; ++offset_ptr) { |
int offset = *offset_ptr; |
if (!offset || IsSamePage(pc, pc - offset)) { |
+ MSAN_MEMORY_IS_INITIALIZED(pc - offset, pattern->bytes_count); |
if (!memcmp(pc - offset, pattern->bytes, pattern->bytes_count)) |
return true; |
} else { |
@@ -226,6 +227,7 @@ DISABLE_ASAN bool IsNoFrameRegion(Address address) { |
// allocated thus causing a SEGFAULT. |
// Check the pattern part that's on the same page and |
// pessimistically assume it could be the entire pattern match. |
+ MSAN_MEMORY_IS_INITIALIZED(pc, pattern->bytes_count - offset); |
if (!memcmp(pc, pattern->bytes + offset, pattern->bytes_count - offset)) |
return true; |
} |