Browse Source

Merge pull request #727 from AustinSchuh/arena_bounds_fix

Handled blocks being too small in arena.cc
Feng Xiao 10 years ago
parent
commit
0e5686a707
1 changed files with 3 additions and 0 deletions
  1. 3 0
      src/google/protobuf/arena.cc

+ 3 - 0
src/google/protobuf/arena.cc

@@ -61,6 +61,9 @@ void Arena::Init() {
   cleanup_list_ = 0;
   cleanup_list_ = 0;
 
 
   if (options_.initial_block != NULL && options_.initial_block_size > 0) {
   if (options_.initial_block != NULL && options_.initial_block_size > 0) {
+    GOOGLE_CHECK_GE(options_.initial_block_size, sizeof(Block))
+        << ": Initial block size too small for header.";
+
     // Add first unowned block to list.
     // Add first unowned block to list.
     Block* first_block = reinterpret_cast<Block*>(options_.initial_block);
     Block* first_block = reinterpret_cast<Block*>(options_.initial_block);
     first_block->size = options_.initial_block_size;
     first_block->size = options_.initial_block_size;