summaryrefslogtreecommitdiff
path: root/client/mysqladmin.cc
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2011-12-12 22:58:24 +0100
committerSergei Golubchik <sergii@pisem.net>2011-12-12 22:58:24 +0100
commit6cc9d0ffa0b6d9d0f19cf9445fad0e0ba11e38f8 (patch)
tree6952bb89985c14f7ad5e362dd350d191cadd0d69 /client/mysqladmin.cc
parent37c81d81b3940a21b500aff6aeb70e8b1df0b7e8 (diff)
downloadmariadb-git-6cc9d0ffa0b6d9d0f19cf9445fad0e0ba11e38f8.tar.gz
move safemalloc out of dbug.
remeber a real backtrace for every allocation. make safemalloc to tract C++ new/delete too. collateral fixes to make the test suite pass.
Diffstat (limited to 'client/mysqladmin.cc')
-rw-r--r--client/mysqladmin.cc17
1 files changed, 8 insertions, 9 deletions
diff --git a/client/mysqladmin.cc b/client/mysqladmin.cc
index 463ec37fae2..4a691ff4e14 100644
--- a/client/mysqladmin.cc
+++ b/client/mysqladmin.cc
@@ -301,20 +301,17 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
int main(int argc,char *argv[])
{
- int error= 0, ho_error;
+ int error= 0;
MYSQL mysql;
char **commands, **save_argv;
MY_INIT(argv[0]);
mysql_init(&mysql);
- if (load_defaults("my",load_default_groups,&argc,&argv))
- exit(1);
+ if ((error= load_defaults("my",load_default_groups,&argc,&argv)))
+ goto err1;
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 ((error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ goto err2;
if (debug_info_flag)
my_end_arg= MY_CHECK_ERROR | MY_GIVE_INFO;
if (debug_check_flag)
@@ -463,6 +460,7 @@ int main(int argc,char *argv[])
} /* got connection */
mysql_close(&mysql);
+err2:
mysql_library_end();
my_free(opt_password);
my_free(user);
@@ -470,8 +468,9 @@ int main(int argc,char *argv[])
my_free(shared_memory_base_name);
#endif
free_defaults(save_argv);
+err1:
my_end(my_end_arg);
- exit(error ? 1 : 0);
+ exit(error);
return 0;
}