diff options
Diffstat (limited to 'server-tools/instance-manager/mysqlmanager.cc')
-rw-r--r-- | server-tools/instance-manager/mysqlmanager.cc | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/server-tools/instance-manager/mysqlmanager.cc b/server-tools/instance-manager/mysqlmanager.cc index de80878e283..a1420a639cb 100644 --- a/server-tools/instance-manager/mysqlmanager.cc +++ b/server-tools/instance-manager/mysqlmanager.cc @@ -79,6 +79,7 @@ int HandleServiceOptions(Options options); int main(int argc, char *argv[]) { + int return_value= 1; init_environment(argv[0]); Options options; struct passwd *user_info; @@ -90,10 +91,7 @@ int main(int argc, char *argv[]) if ((user_info= check_user(options.user))) { if (set_user(options.user, user_info)) - { - options.cleanup(); goto err; - } } if (options.run_as_service) @@ -105,17 +103,18 @@ int main(int argc, char *argv[]) } #else #ifdef NDEBUG - return HandleServiceOptions(options); + return_value= HandleServiceOptions(options); + goto err; /* this is not always an error but we reuse the label */ #endif #endif manager(options); - options.cleanup(); - my_end(0); - return 0; + return_value= 0; + err: + options.cleanup(); my_end(0); - return 1; + return return_value; } /******************* Auxilary functions implementation **********************/ |