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

Unified Diff: syzygy/agent/asan/heap_managers/block_heap_manager_unittest.cc

Issue 2527533003: Make SyzyAsan support the allocation > 1GB (Closed)
Patch Set: Do an unguarded alloc if the size > 2GB 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
Index: syzygy/agent/asan/heap_managers/block_heap_manager_unittest.cc
diff --git a/syzygy/agent/asan/heap_managers/block_heap_manager_unittest.cc b/syzygy/agent/asan/heap_managers/block_heap_manager_unittest.cc
index ed63d81636fa550e9c93b0333e84e44a533e27ff..7aabf2244d206a1ee291c9a9b9c18abeec17201e 100644
--- a/syzygy/agent/asan/heap_managers/block_heap_manager_unittest.cc
+++ b/syzygy/agent/asan/heap_managers/block_heap_manager_unittest.cc
@@ -44,6 +44,7 @@
#include "syzygy/assm/assembler.h"
#include "syzygy/assm/buffer_serializer.h"
#include "syzygy/common/asan_parameters.h"
+#include "syzygy/testing/laa.h"
namespace agent {
namespace asan {
@@ -612,6 +613,28 @@ TEST_F(BlockHeapManagerTest, AllocAndFree) {
EXPECT_TRUE(heap_manager_->DestroyHeap(heap_id));
}
+TEST_F(BlockHeapManagerTest, AllocAndFreeLargeBlock) {
+ TEST_ONLY_SUPPORTS_4G();
+
+ const size_t kAllocSize = 0x7000001c;
+ HeapId heap_id = heap_manager_->CreateHeap();
+ EXPECT_NE(0u, heap_id);
+ void* alloc = heap_manager_->Allocate(heap_id, kAllocSize);
+ EXPECT_NE(static_cast<void*>(nullptr), alloc);
+ EXPECT_LE(kAllocSize, heap_manager_->Size(heap_id, alloc));
+ EXPECT_TRUE(heap_manager_->Free(heap_id, alloc));
+ EXPECT_TRUE(heap_manager_->DestroyHeap(heap_id));
+}
+
+TEST_F(BlockHeapManagerTest, AllocLargeBlockFail) {
+ const size_t kAllocSize = 0x80000000;
+ HeapId heap_id = heap_manager_->CreateHeap();
+ EXPECT_NE(0u, heap_id);
+ void* alloc = heap_manager_->Allocate(heap_id, kAllocSize);
+ EXPECT_EQ(static_cast<void*>(nullptr), alloc);
+ EXPECT_TRUE(heap_manager_->DestroyHeap(heap_id));
+}
+
TEST_F(BlockHeapManagerTest, FreeNullPointer) {
HeapId heap_id = heap_manager_->CreateHeap();
EXPECT_NE(0u, heap_id);

Powered by Google App Engine
This is Rietveld 408576698