diff options
author | monty@mashka.mysql.fi <> | 2002-08-24 02:08:10 +0300 |
---|---|---|
committer | monty@mashka.mysql.fi <> | 2002-08-24 02:08:10 +0300 |
commit | d49bf802ec4da146a21d1955974efd338afc1e57 (patch) | |
tree | b6f240b448658aa070696e59191554c4475198e0 /client | |
parent | a9c1508d7eb8ace489d82d1c7a952fc6a513d082 (diff) | |
download | mariadb-git-d49bf802ec4da146a21d1955974efd338afc1e57.tar.gz |
Removed wrong mutex lock (hangup in kill on HPUX)
all free_defaults() on exit in mysql.cc; Should fix problem with SSL
Diffstat (limited to 'client')
-rw-r--r-- | client/mysql.cc | 8 | ||||
-rw-r--r-- | client/mysqladmin.c | 3 | ||||
-rw-r--r-- | client/mysqlimport.c | 6 |
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++) |