diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2021-11-17 14:49:12 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2021-11-17 14:49:12 +0200 |
commit | 5489ce0ae1cb5c5bd6d4e75ae587aadc6e4b4d48 (patch) | |
tree | 6656f708fe638a56677d26d64440b4b37a1e763a /storage/innobase/row | |
parent | ebb15f986f18ec33f35617f75c932a48350cd579 (diff) | |
parent | 70e788b1e588106f332b88f435e588de3b103e04 (diff) | |
download | mariadb-git-5489ce0ae1cb5c5bd6d4e75ae587aadc6e4b4d48.tar.gz |
Merge 10.4 into 10.5
Diffstat (limited to 'storage/innobase/row')
-rw-r--r-- | storage/innobase/row/row0import.cc | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/storage/innobase/row/row0import.cc b/storage/innobase/row/row0import.cc index 4e764302b8b..45cc8c278b5 100644 --- a/storage/innobase/row/row0import.cc +++ b/storage/innobase/row/row0import.cc @@ -3109,9 +3109,8 @@ 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) || err != DB_SUCCESS) + if (dberr_t err= fil_space_decrypt(space_id, space_crypt, data, + page.size(), space_flags, data)) return err; } @@ -3825,9 +3824,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; } @@ -3978,7 +3980,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; @@ -3997,21 +3998,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; } |