summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorGeorgi Kodinov <Georgi.Kodinov@Oracle.com>2012-07-05 09:55:20 +0300
committerGeorgi Kodinov <Georgi.Kodinov@Oracle.com>2012-07-05 09:55:20 +0300
commit06f6e4fe957c6edd7b3655d4987d0fbd67cdb9d6 (patch)
tree79bc42ec937ff1b148e0a6b66924d7a3d796b805 /include
parent9ce35ffc8677ff3c7171576497ed6c7330000b72 (diff)
downloadmariadb-git-06f6e4fe957c6edd7b3655d4987d0fbd67cdb9d6.tar.gz
Bug #12998841: libmysql divulges plaintext password upon request in 5.5
1. Clear text password client plugin disabled by default. 2. Added an environment variable LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN, that when set to something starting with '1', 'Y' or 'y' will enable the clear text plugin for all connections. 3. Added a new mysql_options() option : MYSQL_ENABLE_CLEARTEXT_PLUGIN that takes an my_bool argument. When the value of the argument is non-zero the clear text plugin is enabled for this connection only. 4. Added an enable-cleartext-plugin config file option that takes a numeric argument. If the numeric value of the numeric argument is non-zero the clear text plugin is enabled for the connection 5. Added a boolean command line option "--enable_cleartext_plugin" to mysql, mysqlslap and mysqladmin. When specified it will call mysql_options with the effect of #3 6. Added a new CLEARTEXT option to the connect command in mysqltest. When specified it will enable the cleartext plugin for usage. 7. Added test cases and updated existing ones that need the clear text plugin.
Diffstat (limited to 'include')
-rw-r--r--include/mysql.h3
-rw-r--r--include/mysql.h.pp3
-rw-r--r--include/sql_common.h2
3 files changed, 6 insertions, 2 deletions
diff --git a/include/mysql.h b/include/mysql.h
index cff8c647152..0ed35413a1c 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -166,7 +166,8 @@ enum mysql_option
MYSQL_OPT_USE_REMOTE_CONNECTION, MYSQL_OPT_USE_EMBEDDED_CONNECTION,
MYSQL_OPT_GUESS_CONNECTION, MYSQL_SET_CLIENT_IP, MYSQL_SECURE_AUTH,
MYSQL_REPORT_DATA_TRUNCATION, MYSQL_OPT_RECONNECT,
- MYSQL_OPT_SSL_VERIFY_SERVER_CERT, MYSQL_PLUGIN_DIR, MYSQL_DEFAULT_AUTH
+ MYSQL_OPT_SSL_VERIFY_SERVER_CERT, MYSQL_PLUGIN_DIR, MYSQL_DEFAULT_AUTH,
+ MYSQL_ENABLE_CLEARTEXT_PLUGIN
};
/**
diff --git a/include/mysql.h.pp b/include/mysql.h.pp
index 15ec563dfc2..c2c5ba35044 100644
--- a/include/mysql.h.pp
+++ b/include/mysql.h.pp
@@ -262,7 +262,8 @@ enum mysql_option
MYSQL_OPT_USE_REMOTE_CONNECTION, MYSQL_OPT_USE_EMBEDDED_CONNECTION,
MYSQL_OPT_GUESS_CONNECTION, MYSQL_SET_CLIENT_IP, MYSQL_SECURE_AUTH,
MYSQL_REPORT_DATA_TRUNCATION, MYSQL_OPT_RECONNECT,
- MYSQL_OPT_SSL_VERIFY_SERVER_CERT, MYSQL_PLUGIN_DIR, MYSQL_DEFAULT_AUTH
+ MYSQL_OPT_SSL_VERIFY_SERVER_CERT, MYSQL_PLUGIN_DIR, MYSQL_DEFAULT_AUTH,
+ MYSQL_ENABLE_CLEARTEXT_PLUGIN
};
struct st_mysql_options_extention;
struct st_mysql_options {
diff --git a/include/sql_common.h b/include/sql_common.h
index 307b443d6d6..a2ea3ac45e7 100644
--- a/include/sql_common.h
+++ b/include/sql_common.h
@@ -31,6 +31,7 @@ extern const char *not_error_sqlstate;
struct st_mysql_options_extention {
char *plugin_dir;
char *default_auth;
+ my_bool enable_cleartext_plugin;
};
typedef struct st_mysql_methods
@@ -104,6 +105,7 @@ int mysql_client_plugin_init();
void mysql_client_plugin_deinit();
struct st_mysql_client_plugin;
extern struct st_mysql_client_plugin *mysql_client_builtins[];
+extern my_bool libmysql_cleartext_plugin_enabled;
#ifdef __cplusplus
}