summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2002-08-24 02:08:10 +0300
committerunknown <monty@mashka.mysql.fi>2002-08-24 02:08:10 +0300
commitc216222b5a13aae392abc35849a6887a6aa48b1d (patch)
treeb6f240b448658aa070696e59191554c4475198e0 /client
parenta0c16f907ecce4a0489fd7cd7189144259de8c43 (diff)
downloadmariadb-git-c216222b5a13aae392abc35849a6887a6aa48b1d.tar.gz
Removed wrong mutex lock (hangup in kill on HPUX)
all free_defaults() on exit in mysql.cc; Should fix problem with SSL Docs/manual.texi: Added information about --skip-innodb client/mysql.cc: Call free_defaults() on exit client/mysqladmin.c: Call free_defaults() on exit client/mysqlimport.c: Call free_defaults() on exit mysql-test/r/rpl000016.result: Added testing of temporary tables with binary log rotation mysql-test/t/rpl000016.test: Added testing of temporary tables with binary log rotation sql/log.cc: Remove not used variable sql/sql_class.h: Removed wrong mutex lock (hangup in kill on HPUX)
Diffstat (limited to 'client')
-rw-r--r--client/mysql.cc8
-rw-r--r--client/mysqladmin.c3
-rw-r--r--client/mysqlimport.c6
3 files changed, 16 insertions, 1 deletions
diff --git a/client/mysql.cc b/client/mysql.cc
index 77823b1087f..66df47bc934 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -112,6 +112,7 @@ typedef struct st_status
static HashTable ht;
+static char **defaults_argv;
enum enum_info_type { INFO_INFO,INFO_ERROR,INFO_RESULT};
typedef enum enum_info_type INFO_TYPE;
@@ -317,15 +318,19 @@ int main(int argc,char *argv[])
status.add_to_history=1;
status.exit_status=1;
load_defaults("my",load_default_groups,&argc,&argv);
+ defaults_argv=argv;
if (get_options(argc, (char **) argv))
{
+ free_defaults(defaults_argv);
my_end(0);
exit(1);
}
- free_defaults(argv);
if (status.batch && !status.line_buff &&
!(status.line_buff=batch_readline_init(max_allowed_packet+512,stdin)))
+ {
+ free_defaults(defaults_argv);
exit(1);
+ }
glob_buffer.realloc(512);
mysql_server_init(0, NULL, (char**) server_default_groups);
completion_hash_init(&ht, 128);
@@ -420,6 +425,7 @@ sig_handler mysql_end(int sig)
my_free(default_prompt,MYF(MY_ALLOW_ZERO_PTR));
my_free(current_prompt,MYF(MY_ALLOW_ZERO_PTR));
mysql_server_end();
+ free_defaults(defaults_argv);
my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : 0);
exit(status.exit_status);
}
diff --git a/client/mysqladmin.c b/client/mysqladmin.c
index 4da995fa224..cdca59574f7 100644
--- a/client/mysqladmin.c
+++ b/client/mysqladmin.c
@@ -254,7 +254,10 @@ int main(int argc,char *argv[])
load_defaults("my",load_default_groups,&argc,&argv);
save_argv = argv; /* Save for free_defaults */
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ {
+ free_defaults(save_argv);
exit(ho_error);
+ }
if (argc == 0)
{
diff --git a/client/mysqlimport.c b/client/mysqlimport.c
index e7af106abbb..603e9036106 100644
--- a/client/mysqlimport.c
+++ b/client/mysqlimport.c
@@ -471,9 +471,15 @@ int main(int argc, char **argv)
/* argv is changed in the program */
argv_to_free= argv;
if (get_options(&argc, &argv))
+ {
+ free_defaults(argv_to_free);
return(1);
+ }
if (!(sock= db_connect(current_host,current_db,current_user,opt_password)))
+ {
+ free_defaults(argv_to_free);
return(1); /* purecov: deadcode */
+ }
if (lock_tables)
lock_table(sock, argc, argv);
for (; *argv != NULL; argv++)