diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2017-08-03 08:29:36 +0300 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2017-08-03 08:29:36 +0300 |
commit | 8b019f87dd51b1d2755655d2f136d5429fc47e1f (patch) | |
tree | 5601d27ce338842a0fa2d90202e788663db39c23 /extra/CMakeLists.txt | |
parent | 56959e7b2ce621980bad1445a0a659c2b0fb4c83 (diff) | |
download | mariadb-git-8b019f87dd51b1d2755655d2f136d5429fc47e1f.tar.gz |
MDEV-11939: innochecksum mistakes a file for an encrypted one (page 0 invalid)
Always read full page 0 to determine does tablespace contain
encryption metadata. Tablespaces that are page compressed or
page compressed and encrypted do not compare checksum as
it does not exists. For encrypted tables use checksum
verification written for encrypted tables and normal tables
use normal method.
buf_page_is_checksum_valid_crc32
buf_page_is_checksum_valid_innodb
buf_page_is_checksum_valid_none
Add Innochecksum logging to file
buf_page_is_corrupted
Remove ib_logf and page_warn_strict_checksum
calls in innochecksum compilation. Add innochecksum
logging to file.
fil0crypt.cc fil0crypt.h
Modify to be able to use in innochecksum compilation and
move fil_space_verify_crypt_checksum to end of the file.
Add innochecksum logging to file.
univ.i
Add innochecksum strict_verify, log_file and cur_page_num
variables as extern.
page_zip_verify_checksum
Add innochecksum logging to file.
innochecksum.cc
Lot of changes most notable able to read encryption
metadata from page 0 of the tablespace.
Added test case where we corrupt intentionally
FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION (encryption key version)
FIL_PAGE_FILE_FLUSH_LSN_OR_KEY_VERSION+4 (post encryption checksum)
FIL_DATA+10 (data)
Diffstat (limited to 'extra/CMakeLists.txt')
-rw-r--r-- | extra/CMakeLists.txt | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/extra/CMakeLists.txt b/extra/CMakeLists.txt index 5b650413bf3..c8e15dd4fb4 100644 --- a/extra/CMakeLists.txt +++ b/extra/CMakeLists.txt @@ -77,7 +77,9 @@ IF(WITH_INNOBASE_STORAGE_ENGINE OR WITH_XTRADB_STORAGE_ENGINE) ../storage/innobase/buf/buf0checksum.cc ../storage/innobase/ut/ut0crc32.cc ../storage/innobase/ut/ut0ut.cc + ../storage/innobase/buf/buf0buf.cc ../storage/innobase/page/page0zip.cc + ../storage/innobase/fil/fil0crypt.cc ) IF(CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le") |