diff --git a/mysql-test/main/lowercase_table.result b/mysql-test/main/lowercase_table.result index 92dfdfdac96..3d840445bf2 100644 --- a/mysql-test/main/lowercase_table.result +++ b/mysql-test/main/lowercase_table.result @@ -148,3 +148,19 @@ drop table t1; # # End of 10.2 tests # +# +# MDEV-25109 Server crashes in sp_name::sp_name upon invalid data in mysql.proc +# +call mtr.add_suppression("Stored routine ''.'': invalid value in column"); +insert ignore into mysql.proc () values (); +Warnings: +Warning 1364 Field 'param_list' doesn't have a default value +Warning 1364 Field 'returns' doesn't have a default value +Warning 1364 Field 'body' doesn't have a default value +Warning 1364 Field 'comment' doesn't have a default value +show function status; +ERROR 42000: Incorrect routine name '' +delete from mysql.proc where name = ''; +# +# End of 10.3 tests +# diff --git a/mysql-test/main/lowercase_table.test b/mysql-test/main/lowercase_table.test index 203203a30c0..4f92e43f5f7 100644 --- a/mysql-test/main/lowercase_table.test +++ b/mysql-test/main/lowercase_table.test @@ -126,3 +126,16 @@ drop table t1; --echo # --echo # End of 10.2 tests --echo # + +--echo # +--echo # MDEV-25109 Server crashes in sp_name::sp_name upon invalid data in mysql.proc +--echo # +call mtr.add_suppression("Stored routine ''.'': invalid value in column"); +insert ignore into mysql.proc () values (); +--error ER_SP_WRONG_NAME +show function status; +delete from mysql.proc where name = ''; + +--echo # +--echo # End of 10.3 tests +--echo # diff --git a/sql/sp_head.h b/sql/sp_head.h index 493bb777bdf..e1cfbb484ad 100644 --- a/sql/sp_head.h +++ b/sql/sp_head.h @@ -111,7 +111,7 @@ public: bool use_explicit_name) : Database_qualified_name(db, name), m_explicit_name(use_explicit_name) { - if (lower_case_table_names && m_db.str) + if (lower_case_table_names && m_db.length) m_db.length= my_casedn_str(files_charset_info, (char*) m_db.str); }