From 455f77bdbb14d5f41809ef5bbd234ea9fd92f972 Mon Sep 17 00:00:00 2001 From: Nirbhay Choubey Date: Fri, 2 Jan 2015 10:01:09 -0500 Subject: [PATCH] MDEV-7222: Cluster Node Crash at CREATE DEFINER statement Check whether the definer host string is not null before appending it to the specified buffer. --- mysql-test/suite/galera/r/view.result | 7 +++++++ mysql-test/suite/galera/t/view.test | 11 +++++++++++ sql/sql_show.cc | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 mysql-test/suite/galera/r/view.result create mode 100644 mysql-test/suite/galera/t/view.test diff --git a/mysql-test/suite/galera/r/view.result b/mysql-test/suite/galera/r/view.result new file mode 100644 index 0000000000000..89e2355b4dc84 --- /dev/null +++ b/mysql-test/suite/galera/r/view.result @@ -0,0 +1,7 @@ +# +# MDEV-7222: Cluster Node Crash at CREATE DEFINER statement +# +USE test; +CREATE DEFINER=CURRENT_USER VIEW v1 AS SELECT 1; +DROP VIEW v1; +# End of tests diff --git a/mysql-test/suite/galera/t/view.test b/mysql-test/suite/galera/t/view.test new file mode 100644 index 0000000000000..6768917589cf4 --- /dev/null +++ b/mysql-test/suite/galera/t/view.test @@ -0,0 +1,11 @@ +--source include/galera_cluster.inc +--source include/have_innodb.inc + +--echo # +--echo # MDEV-7222: Cluster Node Crash at CREATE DEFINER statement +--echo # +USE test; +CREATE DEFINER=CURRENT_USER VIEW v1 AS SELECT 1; +DROP VIEW v1; + +--echo # End of tests diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 6f1860d902d71..c6f18fa2a3c03 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -2140,7 +2140,7 @@ void append_definer(THD *thd, String *buffer, const LEX_STRING *definer_user, { buffer->append(STRING_WITH_LEN("DEFINER=")); append_identifier(thd, buffer, definer_user->str, definer_user->length); - if (definer_host->str[0]) + if (definer_host->str && definer_host->str[0]) { buffer->append('@'); append_identifier(thd, buffer, definer_host->str, definer_host->length);