diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2015-09-23 12:32:47 +0300 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2015-09-23 17:34:36 +0300 |
commit | 5c62dd21e8f56dde8ab853542979ba245b1dbae0 (patch) | |
tree | 6c8c88a9f6449380a73185af9d9741f86223ef22 /storage | |
parent | 212698b152609a7b17b45f9499fd650229985558 (diff) | |
download | mariadb-git-5c62dd21e8f56dde8ab853542979ba245b1dbae0.tar.gz |
MDEV-8832: Encryption meta data should not be stored when ENCRYPTED=DEFAULT and innodb-encrypt-tables=OFF
Diffstat (limited to 'storage')
-rw-r--r-- | storage/innobase/fil/fil0fil.cc | 12 | ||||
-rw-r--r-- | storage/xtradb/fil/fil0fil.cc | 12 |
2 files changed, 20 insertions, 4 deletions
diff --git a/storage/innobase/fil/fil0fil.cc b/storage/innobase/fil/fil0fil.cc index 32708580477..48367b790ce 100644 --- a/storage/innobase/fil/fil0fil.cc +++ b/storage/innobase/fil/fil0fil.cc @@ -3353,6 +3353,7 @@ fil_create_new_single_table_tablespace( bool is_temp = !!(flags2 & DICT_TF2_TEMPORARY); bool has_data_dir = FSP_FLAGS_HAS_DATA_DIR(flags); ulint atomic_writes = FSP_FLAGS_GET_ATOMIC_WRITES(flags); + fil_space_crypt_t *crypt_data = NULL; ut_a(space_id > 0); ut_ad(!srv_read_only_mode); @@ -3506,8 +3507,15 @@ fil_create_new_single_table_tablespace( } } + /* Create crypt data if the tablespace is either encrypted or user has + requested it to remain unencrypted. */ + if (mode == FIL_SPACE_ENCRYPTION_ON || mode == FIL_SPACE_ENCRYPTION_OFF || + srv_encrypt_tables) { + crypt_data = fil_space_create_crypt_data(mode, key_id); + } + success = fil_space_create(tablename, space_id, flags, FIL_TABLESPACE, - fil_space_create_crypt_data(mode, key_id)); + crypt_data); if (!success || !fil_node_create(path, size, space_id, FALSE)) { err = DB_ERROR; @@ -6501,7 +6509,7 @@ fil_iterate( if (page_compressed) { ulint len = 0; - byte* res = fil_compress_page(space_id, + fil_compress_page(space_id, src, NULL, size, diff --git a/storage/xtradb/fil/fil0fil.cc b/storage/xtradb/fil/fil0fil.cc index 3e5cf4ec288..45bb32d9b9d 100644 --- a/storage/xtradb/fil/fil0fil.cc +++ b/storage/xtradb/fil/fil0fil.cc @@ -3387,6 +3387,7 @@ fil_create_new_single_table_tablespace( bool is_temp = !!(flags2 & DICT_TF2_TEMPORARY); bool has_data_dir = FSP_FLAGS_HAS_DATA_DIR(flags); ulint atomic_writes = FSP_FLAGS_GET_ATOMIC_WRITES(flags); + fil_space_crypt_t *crypt_data = NULL; ut_a(space_id > 0); ut_ad(!srv_read_only_mode); @@ -3540,8 +3541,15 @@ fil_create_new_single_table_tablespace( } } + /* Create crypt data if the tablespace is either encrypted or user has + requested it to remain unencrypted. */ + if (mode == FIL_SPACE_ENCRYPTION_ON || mode == FIL_SPACE_ENCRYPTION_OFF || + srv_encrypt_tables) { + crypt_data = fil_space_create_crypt_data(mode, key_id); + } + success = fil_space_create(tablename, space_id, flags, FIL_TABLESPACE, - fil_space_create_crypt_data(mode, key_id)); + crypt_data); if (!success || !fil_node_create(path, size, space_id, FALSE)) { err = DB_ERROR; @@ -6558,7 +6566,7 @@ fil_iterate( if (page_compressed) { ulint len = 0; - byte* res = fil_compress_page(space_id, + fil_compress_page(space_id, src, NULL, size, |