summaryrefslogtreecommitdiff
path: root/storage/innobase/row
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2021-11-17 13:59:42 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2021-11-17 13:59:42 +0200
commit70e788b1e588106f332b88f435e588de3b103e04 (patch)
tree3a5c74153bb11806b300f2f82d5378aef2d52c02 /storage/innobase/row
parent878f7e38c74baffd1baea00800a6cae0c6c64279 (diff)
parent9962cda52722b77c2a7e0314bbaa2e4f963f55c1 (diff)
downloadmariadb-git-70e788b1e588106f332b88f435e588de3b103e04.tar.gz
Merge 10.3 into 10.4
Diffstat (limited to 'storage/innobase/row')
-rw-r--r--storage/innobase/row/row0import.cc28
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;
}