summaryrefslogtreecommitdiff
path: root/libmysqld/lib_sql.cc
diff options
context:
space:
mode:
authorAlexey Botchkov <holyfoot@mysql.com>2008-10-27 13:57:59 +0400
committerAlexey Botchkov <holyfoot@mysql.com>2008-10-27 13:57:59 +0400
commitbe66e43dabe2681705a9adfe3d385496dc827882 (patch)
treeaa7b899c121b6572fb65f716fb71cddc27f7136c /libmysqld/lib_sql.cc
parentb6704027d681a80be03d416e9c9c344d86a562dd (diff)
downloadmariadb-git-be66e43dabe2681705a9adfe3d385496dc827882.tar.gz
Bug#39289 libmysqld.a calls exit() upon error
Several functions (mostly in mysqld.cc) directly call exit() function in case of errors, which is not a desired behaviour expecially in the embedded-server library. Fixed by making these functions return error sign instead of exiting. per-file comments: include/my_getopt.h Bug#39289 libmysqld.a calls exit() upon error added 'error' retvalue for my_getopt_register_get_addr libmysqld/lib_sql.cc Bug#39289 libmysqld.a calls exit() upon error unireg_clear() function implemented mysys/default.c Bug#39289 libmysqld.a calls exit() upon error error returned instead of exit() call mysys/mf_tempdir.c Bug#39289 libmysqld.a calls exit() upon error free_tmpdir() - fixed so it's not produce crash on uninitialized tmpdir structure mysys/my_getopt.c Bug#39289 libmysqld.a calls exit() upon error error returned instead of exit() call sql/mysql_priv.h Bug#39289 libmysqld.a calls exit() upon error unireg_abort definition fixed for the embedded server sql/mysqld.cc Bug#39289 libmysqld.a calls exit() upon error various functions fixed error returned instead of exit() call
Diffstat (limited to 'libmysqld/lib_sql.cc')
-rw-r--r--libmysqld/lib_sql.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc
index 6e82812239e..4888ebca533 100644
--- a/libmysqld/lib_sql.cc
+++ b/libmysqld/lib_sql.cc
@@ -43,6 +43,15 @@ extern char mysql_server_last_error[MYSQL_ERRMSG_SIZE];
static my_bool emb_read_query_result(MYSQL *mysql);
+extern "C" void unireg_clear(int exit_code)
+{
+ DBUG_ENTER("unireg_clear");
+ clean_up(!opt_help && (exit_code || !opt_bootstrap)); /* purecov: inspected */
+ my_end(opt_endinfo ? MY_CHECK_ERROR | MY_GIVE_INFO : 0);
+ DBUG_VOID_RETURN;
+}
+
+
/*
Reads error information from the MYSQL_DATA and puts
it into proper MYSQL members