From dd126ba1a59b8bc9560fc5298ad11869611d7e4b Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 22 Oct 2004 19:27:43 +0400 Subject: [PATCH] Part of fix for bug #6081 "Call to deprecated mysql_create_db() function crashes server" (in 4.0 we fix only connection stalling in case of error, crash itself is fixed in 4.1, the test case for this code is also there). sql/sql_parse.cc: Handling of COM_CREATE_DB, COM_DROP_DB: We should call send_error() if mysql_create_db or mysql_drop_db return error (like we do it for SQL versions of these commands). --- sql/sql_parse.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 9e0853a370b..7c21a5af2a6 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -1142,7 +1142,9 @@ bool dispatch_command(enum enum_server_command command, THD *thd, if (check_access(thd,CREATE_ACL,db,0,1)) break; mysql_log.write(thd,command,packet); - mysql_create_db(thd,(lower_case_table_names == 2 ? alias : db),0,0); + if (mysql_create_db(thd, (lower_case_table_names == 2 ? alias : db), + 0, 0) < 0) + send_error(&thd->net, thd->killed ? ER_SERVER_SHUTDOWN : 0); break; } case COM_DROP_DB: // QQ: To be removed @@ -1163,7 +1165,9 @@ bool dispatch_command(enum enum_server_command command, THD *thd, break; } mysql_log.write(thd,command,db); - mysql_rm_db(thd, (lower_case_table_names == 2 ? alias : db), 0, 0); + if (mysql_rm_db(thd, (lower_case_table_names == 2 ? alias : db), + 0, 0) < 0) + send_error(&thd->net, thd->killed ? ER_SERVER_SHUTDOWN : 0); break; } case COM_BINLOG_DUMP: