diff options
Diffstat (limited to 'deps/v8/src/s390/assembler-s390.cc')
-rw-r--r-- | deps/v8/src/s390/assembler-s390.cc | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/deps/v8/src/s390/assembler-s390.cc b/deps/v8/src/s390/assembler-s390.cc index 246ab118f8..35305fc074 100644 --- a/deps/v8/src/s390/assembler-s390.cc +++ b/deps/v8/src/s390/assembler-s390.cc @@ -2101,7 +2101,14 @@ void Assembler::GrowBuffer(int needed) { if (space < needed) { desc.buffer_size += needed - space; } - CHECK_GT(desc.buffer_size, 0); // no overflow + + // Some internal data structures overflow for very large buffers, + // they must ensure that kMaximalBufferSize is not too large. + if (desc.buffer_size > kMaximalBufferSize || + static_cast<size_t>(desc.buffer_size) > + isolate_data().max_old_generation_size_) { + V8::FatalProcessOutOfMemory("Assembler::GrowBuffer"); + } // Set up new buffer. desc.buffer = NewArray<byte>(desc.buffer_size); |