Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Unified Diff: syzygy/agent/asan/block_unittest.cc

Issue 2508333002: Remove the is_nested bit from the BlockInfo structure. (Closed)
Patch Set: Address Siggi's comments. Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « syzygy/agent/asan/block.cc ('k') | syzygy/agent/asan/error_info_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: syzygy/agent/asan/block_unittest.cc
diff --git a/syzygy/agent/asan/block_unittest.cc b/syzygy/agent/asan/block_unittest.cc
index 06b4c29fc75863ea03b3e7c0099befb4a0f0d57a..fa34abcbac3aea100250e1cb6908c4fb2143dc42 100644
--- a/syzygy/agent/asan/block_unittest.cc
+++ b/syzygy/agent/asan/block_unittest.cc
@@ -67,7 +67,6 @@ void IsValidBlockImpl(const BlockInfo& block, bool just_initialized) {
// Check the header.
EXPECT_EQ(kBlockHeaderMagic, block.header->magic);
- EXPECT_FALSE(block.header->is_nested);
EXPECT_LT(0u, block.header->body_size);
EXPECT_EQ(block.header->body_size, block.body_size);
if (just_initialized) {
@@ -77,10 +76,6 @@ void IsValidBlockImpl(const BlockInfo& block, bool just_initialized) {
EXPECT_EQ(ALLOCATED_BLOCK, block.header->state);
}
- // By default we assume the blocks to not be nested.
- EXPECT_FALSE(block.header->is_nested);
- EXPECT_EQ(static_cast<bool>(block.header->is_nested), block.is_nested);
-
// Check the header padding.
if (block.header->has_header_padding) {
EXPECT_LE(kShadowRatio, block.header_padding_size);
@@ -207,19 +202,19 @@ TEST_F(BlockTest, EndToEnd) {
EXPECT_TRUE(BlockPlanLayout(8, 8, 4, 0, 0, &layout));
std::vector<uint8_t> block_data(layout.block_size);
- BlockInitialize(layout, block_data.data(), false, &block_info);
+ BlockInitialize(layout, block_data.data(), &block_info);
EXPECT_NO_FATAL_FAILURE(IsValidInitializedBlock(block_info));
block_data.clear();
EXPECT_TRUE(BlockPlanLayout(8, 8, 61, 0, 0, &layout));
block_data.resize(layout.block_size);
- BlockInitialize(layout, block_data.data(), false, &block_info);
+ BlockInitialize(layout, block_data.data(), &block_info);
EXPECT_NO_FATAL_FAILURE(IsValidInitializedBlock(block_info));
block_data.clear();
EXPECT_TRUE(BlockPlanLayout(8, 8, 60, 32, 32, &layout));
block_data.resize(layout.block_size);
- BlockInitialize(layout, block_data.data(), false, &block_info);
+ BlockInitialize(layout, block_data.data(), &block_info);
EXPECT_NO_FATAL_FAILURE(IsValidInitializedBlock(block_info));
block_data.clear();
@@ -228,7 +223,7 @@ TEST_F(BlockTest, EndToEnd) {
void* data = ::VirtualAlloc(NULL, layout.block_size, MEM_COMMIT,
PAGE_READWRITE);
::memset(data, 0, layout.block_size);
- BlockInitialize(layout, data, false, &block_info);
+ BlockInitialize(layout, data, &block_info);
EXPECT_NO_FATAL_FAILURE(IsValidInitializedBlock(block_info));
ASSERT_EQ(TRUE, ::VirtualFree(data, 0, MEM_RELEASE));
}
@@ -245,7 +240,7 @@ TEST_F(BlockTest, GetHeaderFromBody) {
// First try navigating a block without header padding.
BlockInfo info = {};
- BlockInitialize(layout1, data.get(), false, &info);
+ BlockInitialize(layout1, data.get(), &info);
// This should succeed as expected.
EXPECT_EQ(info.header, BlockGetHeaderFromBody(info.body));
// This fails because of invalid alignment.
@@ -264,7 +259,7 @@ TEST_F(BlockTest, GetHeaderFromBody) {
EXPECT_TRUE(BlockGetHeaderFromBody(info.body) == nullptr);
// Now navigate a block with header padding.
- BlockInitialize(layout2, data.get(), false, &info);
+ BlockInitialize(layout2, data.get(), &info);
// This should succeed as expected.
EXPECT_EQ(info.header, BlockGetHeaderFromBody(info.body));
// This fails because of invalid alignment.
@@ -300,7 +295,7 @@ TEST_F(BlockTest, GetHeaderFromBodyProtectedMemory) {
PAGE_READWRITE);
ASSERT_TRUE(alloc != NULL);
BlockInfo block_info = {};
- BlockInitialize(layout, alloc, false, &block_info);
+ BlockInitialize(layout, alloc, &block_info);
BlockProtectRedzones(block_info, &shadow_);
EXPECT_CALL(*this, OnExceptionCallback(_));
@@ -319,7 +314,7 @@ TEST_F(BlockTest, ConvertBlockInfo) {
::memset(data.get(), 0, layout.block_size);
BlockInfo expanded = {};
- BlockInitialize(layout, data.get(), false, &expanded);
+ BlockInitialize(layout, data.get(), &expanded);
CompactBlockInfo compact = {};
ConvertBlockInfo(expanded, &compact);
@@ -347,7 +342,7 @@ TEST_F(BlockTest, BlockInfoFromMemory) {
// First recover a block without header padding.
BlockInfo info = {};
- BlockInitialize(layout1, data.get(), false, &info);
+ BlockInitialize(layout1, data.get(), &info);
BlockInfo info_recovered = {};
EXPECT_TRUE(BlockInfoFromMemory(info.header, &info_recovered));
EXPECT_EQ(info, info_recovered);
@@ -365,7 +360,7 @@ TEST_F(BlockTest, BlockInfoFromMemory) {
EXPECT_FALSE(BlockInfoFromMemory(info.header, &info_recovered));
// Now recover a block with header padding.
- BlockInitialize(layout2, data.get(), false, &info);
+ BlockInitialize(layout2, data.get(), &info);
EXPECT_TRUE(BlockInfoFromMemory(info.header, &info_recovered));
EXPECT_EQ(info, info_recovered);
// Failed because the magic is invalid.
@@ -388,15 +383,15 @@ TEST_F(BlockTest, BlockInfoFromMemory) {
EXPECT_TRUE(BlockPlanLayout(kShadowRatio, kShadowRatio, block_size, 0, 0,
&layout));
ASSERT_LE(layout.block_size, kAllocSize);
- BlockInitialize(layout, alloc, false, &info);
+ BlockInitialize(layout, alloc, &info);
EXPECT_TRUE(BlockInfoFromMemory(info.header, &info_recovered));
EXPECT_EQ(info.body_size, info_recovered.body_size);
- EXPECT_EQ(info, info_recovered);
+ EXPECT_EQ(info, info_recovered) << block_size;
EXPECT_TRUE(BlockPlanLayout(4096, 4096, block_size, 4096, 4096,
&layout));
ASSERT_LE(layout.block_size, kAllocSize);
- BlockInitialize(layout, alloc, false, &info);
+ BlockInitialize(layout, alloc, &info);
EXPECT_TRUE(BlockInfoFromMemory(info.header, &info_recovered));
EXPECT_EQ(info.body_size, info_recovered.body_size);
EXPECT_EQ(info, info_recovered);
@@ -413,7 +408,7 @@ TEST_F(BlockTest, BlockInfoFromMemoryInvalidPadding) {
::memset(data.get(), 0, layout.block_size);
BlockInfo info = {};
- BlockInitialize(layout, data.get(), false, &info);
+ BlockInitialize(layout, data.get(), &info);
EXPECT_EQ(1, info.header->has_header_padding);
BlockInfo info_recovered = {};
EXPECT_TRUE(BlockInfoFromMemory(info.header, &info_recovered));
@@ -436,7 +431,7 @@ TEST_F(BlockTest, BlockInfoFromMemoryProtectedMemory) {
PAGE_READWRITE);
ASSERT_TRUE(alloc != NULL);
BlockInfo block_info = {};
- BlockInitialize(layout, alloc, false, &block_info);
+ BlockInitialize(layout, alloc, &block_info);
BlockProtectRedzones(block_info, &shadow_);
BlockInfo recovered_info = {};
@@ -448,28 +443,13 @@ TEST_F(BlockTest, BlockInfoFromMemoryProtectedMemory) {
ASSERT_EQ(TRUE, ::VirtualFree(alloc, 0, MEM_RELEASE));
}
-TEST_F(BlockTest, BlockInfoFromMemoryForNestedBlock) {
- BlockLayout layout = {};
- EXPECT_TRUE(BlockPlanLayout(kShadowRatio, kShadowRatio, 10, 0, 0, &layout));
-
- std::unique_ptr<uint8_t[]> data(new uint8_t[layout.block_size]);
- BlockInfo block_info = {};
- BlockInitialize(layout, data.get(), true, &block_info);
-
- BlockInfo recovered_info = {};
- EXPECT_TRUE(BlockInfoFromMemory(block_info.header, &recovered_info));
-
- EXPECT_TRUE(recovered_info.is_nested);
- EXPECT_TRUE(recovered_info.header->is_nested);
-}
-
TEST_F(BlockTest, ChecksumWorksForAllStates) {
BlockLayout layout = {};
EXPECT_TRUE(BlockPlanLayout(kShadowRatio, kShadowRatio, 10, 0, 0, &layout));
std::unique_ptr<uint8_t[]> data(new uint8_t[layout.block_size]);
::memset(data.get(), 0, layout.block_size);
BlockInfo info = {};
- BlockInitialize(layout, data.get(), false, &info);
+ BlockInitialize(layout, data.get(), &info);
while (true) {
BlockCalculateChecksum(info);
++info.header->state;
@@ -698,7 +678,7 @@ TEST_F(BlockTest, ChecksumDetectsTampering) {
ASSERT_GT(kAllocSize, layout.block_size);
BlockInfo block_info = {};
- BlockInitialize(layout, alloc, false, &block_info);
+ BlockInitialize(layout, alloc, &block_info);
block_info.header->alloc_stack = valid_stack;
block_info.trailer->heap_id = valid_heap_id;
« no previous file with comments | « syzygy/agent/asan/block.cc ('k') | syzygy/agent/asan/error_info_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698