diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2021-11-17 13:59:42 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2021-11-17 13:59:42 +0200 |
commit | 70e788b1e588106f332b88f435e588de3b103e04 (patch) | |
tree | 3a5c74153bb11806b300f2f82d5378aef2d52c02 /storage/innobase/row | |
parent | 878f7e38c74baffd1baea00800a6cae0c6c64279 (diff) | |
parent | 9962cda52722b77c2a7e0314bbaa2e4f963f55c1 (diff) | |
download | mariadb-git-70e788b1e588106f332b88f435e588de3b103e04.tar.gz |
Merge 10.3 into 10.4
Diffstat (limited to 'storage/innobase/row')
-rw-r--r-- | storage/innobase/row/row0import.cc | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/storage/innobase/row/row0import.cc b/storage/innobase/row/row0import.cc index d2236d1e400..fa79f223637 100644 --- a/storage/innobase/row/row0import.cc +++ b/storage/innobase/row/row0import.cc @@ -3122,10 +3122,9 @@ static dberr_t decrypt_decompress(fil_space_crypt_t *space_crypt, if (!buf_page_verify_crypt_checksum(data, space_flags)) return DB_CORRUPTION; - dberr_t err; - if (!fil_space_decrypt(space_id, space_crypt, data, page.size(), - space_flags, data, &err)) - return err ? err : DB_CORRUPTION; + if (dberr_t err= fil_space_decrypt(space_id, space_crypt, data, + page.size(), space_flags, data)) + return err; } else if (fil_page_is_compressed_encrypted(data)) return DB_CORRUPTION; @@ -3835,9 +3834,12 @@ page_corrupted: if (!buf_page_verify_crypt_checksum(readptr, m_space_flags)) goto page_corrupted; - if (!fil_space_decrypt(get_space_id(), iter.crypt_data, readptr, - size, m_space_flags, readptr, &err) || - err != DB_SUCCESS) + if (ENCRYPTION_KEY_NOT_ENCRYPTED == + buf_page_get_key_version(readptr, m_space_flags)) + goto page_corrupted; + + if ((err= fil_space_decrypt(get_space_id(), iter.crypt_data, readptr, size, + m_space_flags, readptr))) goto func_exit; } @@ -3989,7 +3991,6 @@ page_corrupted: if (!encrypted) { } else if (!key_version) { -not_encrypted: if (block->page.id.page_no() == 0 && block->page.zip.data) { block->page.zip.data = src; @@ -4008,21 +4009,16 @@ not_encrypted: goto page_corrupted; } - decrypted = fil_space_decrypt( + if ((err = fil_space_decrypt( actual_space_id, iter.crypt_data, dst, callback.physical_size(), callback.get_space_flags(), - src, &err); - - if (err != DB_SUCCESS) { + src))) { goto func_exit; } - if (!decrypted) { - goto not_encrypted; - } - + decrypted = true; updated = true; } |