Commit b2f56085 authored by Marko Mäkelä's avatar Marko Mäkelä

MDEV-16045: Fix a heap allocation

Since commit baa5a43d
changed the allocation of log_t::files::file_header_bufs[],
a memory overrun could occur when running with a non-default
setting of innodb_log_files_in_group.

log_t::files::create(): Correctly allocate n_files*2048 + 512
bytes of memory, to be aligned at a 512-byte boundary.
parent 10d44db5
...@@ -675,9 +675,8 @@ void log_t::files::create(ulint n_files) ...@@ -675,9 +675,8 @@ void log_t::files::create(ulint n_files)
lsn= LOG_START_LSN; lsn= LOG_START_LSN;
lsn_offset= LOG_FILE_HDR_SIZE; lsn_offset= LOG_FILE_HDR_SIZE;
byte* ptr= static_cast<byte*>(ut_zalloc_nokey(LOG_FILE_HDR_SIZE byte* ptr= static_cast<byte*>(ut_zalloc_nokey(LOG_FILE_HDR_SIZE * n_files
+ OS_FILE_LOG_BLOCK_SIZE + OS_FILE_LOG_BLOCK_SIZE));
* n_files));
file_header_bufs_ptr= ptr; file_header_bufs_ptr= ptr;
ptr= static_cast<byte*>(ut_align(ptr, OS_FILE_LOG_BLOCK_SIZE)); ptr= static_cast<byte*>(ut_align(ptr, OS_FILE_LOG_BLOCK_SIZE));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment