summaryrefslogtreecommitdiff
path: root/sql/encryption.cc
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2017-08-25 10:25:48 +0200
committerSergei Golubchik <serg@mariadb.org>2017-08-25 10:25:48 +0200
commit27412877dbcf601676f4515a99b2abee1f19623b (patch)
tree2cb1a2e1a58ba10f2a96fcdec43f5ed77c326fd0 /sql/encryption.cc
parentf2033df6ac0f64664d9aad2d56fdd74f4bf9d666 (diff)
parenta544225d0a772bd4b67c96f5861ecc0ef7e69bba (diff)
downloadmariadb-git-27412877dbcf601676f4515a99b2abee1f19623b.tar.gz
Merge branch '10.2' into bb-10.2-ext
Diffstat (limited to 'sql/encryption.cc')
-rw-r--r--sql/encryption.cc20
1 files changed, 14 insertions, 6 deletions
diff --git a/sql/encryption.cc b/sql/encryption.cc
index a92296e8b66..52eab262570 100644
--- a/sql/encryption.cc
+++ b/sql/encryption.cc
@@ -98,19 +98,27 @@ int initialize_encryption_plugin(st_plugin_int *plugin)
int finalize_encryption_plugin(st_plugin_int *plugin)
{
- encryption_handler.encryption_key_get_func=
- (uint (*)(uint, uint, uchar*, uint*))no_key;
- encryption_handler.encryption_key_get_latest_version_func= no_key;
- encryption_handler.encryption_ctx_size_func= zero_size;
+ bool used= plugin_ref_to_int(encryption_manager) == plugin;
+
+ if (used)
+ {
+ encryption_handler.encryption_key_get_func=
+ (uint (*)(uint, uint, uchar*, uint*))no_key;
+ encryption_handler.encryption_key_get_latest_version_func= no_key;
+ encryption_handler.encryption_ctx_size_func= zero_size;
+ }
if (plugin && plugin->plugin->deinit && plugin->plugin->deinit(NULL))
{
DBUG_PRINT("warning", ("Plugin '%s' deinit function returned error.",
plugin->name.str));
}
- if (encryption_manager)
+
+ if (used)
+ {
plugin_unlock(NULL, encryption_manager);
- encryption_manager= 0;
+ encryption_manager= 0;
+ }
return 0;
}