orted/orted_submit: plug misc memory leaks
- always invoke init_globals() before opal_cmd_line_parse(orte_cmd_line, ...) - plug more leaks in init_globals() - remove unused env_val and personalities fields from orte_cmd_options_t Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
Этот коммит содержится в:
родитель
d5aa310884
Коммит
f4dc7e4134
@ -706,10 +706,8 @@ int orte_submit_job(char *argv[], int *index,
|
|||||||
|
|
||||||
/* reset the globals every time thru as the argv
|
/* reset the globals every time thru as the argv
|
||||||
* will modify them */
|
* will modify them */
|
||||||
if (NULL != orte_cmd_options.prefix) {
|
init_globals();
|
||||||
free(orte_cmd_options.prefix);
|
|
||||||
}
|
|
||||||
memset(&orte_cmd_options, 0, sizeof(orte_cmd_options));
|
|
||||||
argc = opal_argv_count(argv);
|
argc = opal_argv_count(argv);
|
||||||
|
|
||||||
/* parse the cmd line - do this every time thru so we can
|
/* parse the cmd line - do this every time thru so we can
|
||||||
@ -1099,20 +1097,60 @@ static int init_globals(void)
|
|||||||
orte_cmd_options.num_procs = 0;
|
orte_cmd_options.num_procs = 0;
|
||||||
if (NULL != orte_cmd_options.appfile) {
|
if (NULL != orte_cmd_options.appfile) {
|
||||||
free(orte_cmd_options.appfile);
|
free(orte_cmd_options.appfile);
|
||||||
|
orte_cmd_options.appfile = NULL;
|
||||||
}
|
}
|
||||||
orte_cmd_options.appfile = NULL;
|
|
||||||
if (NULL != orte_cmd_options.wdir) {
|
if (NULL != orte_cmd_options.wdir) {
|
||||||
free(orte_cmd_options.wdir);
|
free(orte_cmd_options.wdir);
|
||||||
|
orte_cmd_options.wdir = NULL;
|
||||||
}
|
}
|
||||||
orte_cmd_options.set_cwd_to_session_dir = false;
|
orte_cmd_options.set_cwd_to_session_dir = false;
|
||||||
orte_cmd_options.wdir = NULL;
|
|
||||||
if (NULL != orte_cmd_options.path) {
|
if (NULL != orte_cmd_options.path) {
|
||||||
free(orte_cmd_options.path);
|
free(orte_cmd_options.path);
|
||||||
|
orte_cmd_options.path = NULL;
|
||||||
|
}
|
||||||
|
if (NULL != orte_cmd_options.hnp) {
|
||||||
|
free(orte_cmd_options.hnp);
|
||||||
|
orte_cmd_options.hnp = NULL;
|
||||||
|
}
|
||||||
|
if (NULL != orte_cmd_options.stdin_target) {
|
||||||
|
free(orte_cmd_options.stdin_target);
|
||||||
|
orte_cmd_options.stdin_target = NULL ;
|
||||||
|
}
|
||||||
|
if (NULL != orte_cmd_options.output_filename) {
|
||||||
|
free(orte_cmd_options.output_filename);
|
||||||
|
orte_cmd_options.output_filename = NULL ;
|
||||||
|
}
|
||||||
|
if (NULL != orte_cmd_options.binding_policy) {
|
||||||
|
free(orte_cmd_options.binding_policy);
|
||||||
|
orte_cmd_options.binding_policy = NULL;
|
||||||
|
}
|
||||||
|
if (NULL != orte_cmd_options.mapping_policy) {
|
||||||
|
free(orte_cmd_options.mapping_policy);
|
||||||
|
orte_cmd_options.mapping_policy = NULL;
|
||||||
|
}
|
||||||
|
if (NULL != orte_cmd_options.ranking_policy) {
|
||||||
|
free(orte_cmd_options.ranking_policy);
|
||||||
|
orte_cmd_options.ranking_policy = NULL;
|
||||||
}
|
}
|
||||||
orte_cmd_options.path = NULL;
|
|
||||||
|
|
||||||
|
if (NULL != orte_cmd_options.report_pid) {
|
||||||
|
free(orte_cmd_options.report_pid);
|
||||||
|
orte_cmd_options.report_pid = NULL;
|
||||||
|
}
|
||||||
|
if (NULL != orte_cmd_options.report_uri) {
|
||||||
|
free(orte_cmd_options.report_uri);
|
||||||
|
orte_cmd_options.report_uri = NULL;
|
||||||
|
}
|
||||||
|
if (NULL != orte_cmd_options.slot_list) {
|
||||||
|
free(orte_cmd_options.slot_list);
|
||||||
|
orte_cmd_options.slot_list= NULL;
|
||||||
|
}
|
||||||
orte_cmd_options.preload_binaries = false;
|
orte_cmd_options.preload_binaries = false;
|
||||||
orte_cmd_options.preload_files = NULL;
|
if (NULL != orte_cmd_options.preload_files) {
|
||||||
|
free(orte_cmd_options.preload_files);
|
||||||
|
orte_cmd_options.preload_files = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* All done */
|
/* All done */
|
||||||
return ORTE_SUCCESS;
|
return ORTE_SUCCESS;
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2015-2017 Intel, Inc. All rights reserved.
|
* Copyright (c) 2015-2017 Intel, Inc. All rights reserved.
|
||||||
* Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2016 Cisco Systems, Inc. All rights reserved.
|
||||||
|
* Copyright (c) 2017 Research Organization for Information Science
|
||||||
|
* and Technology (RIST). All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -51,7 +53,6 @@ struct orte_cmd_options_t {
|
|||||||
bool terminate;
|
bool terminate;
|
||||||
bool debugger;
|
bool debugger;
|
||||||
int num_procs;
|
int num_procs;
|
||||||
char *env_val;
|
|
||||||
char *appfile;
|
char *appfile;
|
||||||
char *wdir;
|
char *wdir;
|
||||||
bool set_cwd_to_session_dir;
|
bool set_cwd_to_session_dir;
|
||||||
@ -69,7 +70,6 @@ struct orte_cmd_options_t {
|
|||||||
bool index_argv;
|
bool index_argv;
|
||||||
bool run_as_root;
|
bool run_as_root;
|
||||||
char *personality;
|
char *personality;
|
||||||
char **personalities;
|
|
||||||
bool create_dvm;
|
bool create_dvm;
|
||||||
bool terminate_dvm;
|
bool terminate_dvm;
|
||||||
bool nolocal;
|
bool nolocal;
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user