diff options
author | 2025-04-22 03:00:00 +0200 | |
---|---|---|
committer | 2025-04-22 03:00:14 +0200 | |
commit | 25dd24864625a73ab40f3fde8ea1d656ff10f3d8 (patch) | |
tree | 1c18110b73363d83ca360bcdd2e8d7ddf4aad72b /src/emu/natkeyboard.cpp | |
parent | 6d9f657e95147024f2eee57b0b076f77c98d9c3a (diff) |
natkeyboard: limit buffer size to 4*8MB
Diffstat (limited to 'src/emu/natkeyboard.cpp')
-rw-r--r-- | src/emu/natkeyboard.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/emu/natkeyboard.cpp b/src/emu/natkeyboard.cpp index 4933de13b38..60149767694 100644 --- a/src/emu/natkeyboard.cpp +++ b/src/emu/natkeyboard.cpp @@ -35,6 +35,7 @@ //************************************************************************** const u32 KEY_BUFFER_CHUNK_SIZE = 0x1000; +const u32 KEY_BUFFER_MAX_SIZE = 0x800000; const char32_t INVALID_CHAR = '?'; @@ -829,6 +830,9 @@ void natural_keyboard::internal_post(char32_t ch) m_buffer[m_bufend] = ch; if ((m_bufend + 1) % m_buffer.size() == m_bufbegin) { + if (m_buffer.size() >= KEY_BUFFER_MAX_SIZE) + return; + m_buffer.insert(m_buffer.begin() + m_bufbegin, KEY_BUFFER_CHUNK_SIZE, INVALID_CHAR); m_bufbegin += KEY_BUFFER_CHUNK_SIZE; } |