1
1

orte/util: fix misc memory leak

as reported by Coverity with CID 1196738-1196739
Этот коммит содержится в:
Gilles Gouaillardet 2015-06-03 13:56:56 +09:00
родитель e77d3057d6
Коммит ac5921d7da

Просмотреть файл

@ -157,7 +157,7 @@ static int hostfile_parse_line(int token, opal_list_t* updates,
if (1 == cnt) { if (1 == cnt) {
node_name = strdup(argv[0]); node_name = strdup(argv[0]);
} else if (2 == cnt) { } else if (2 == cnt) {
username = strdup(argv[0]); username = argv[0];
node_name = strdup(argv[1]); node_name = strdup(argv[1]);
} else { } else {
opal_output(0, "WARNING: Unhandled user@host-combination\n"); /* XXX */ opal_output(0, "WARNING: Unhandled user@host-combination\n"); /* XXX */
@ -196,6 +196,8 @@ static int hostfile_parse_line(int token, opal_list_t* updates,
orte_set_attribute(&node->attributes, ORTE_NODE_USERNAME, ORTE_ATTR_LOCAL, username, OPAL_STRING); orte_set_attribute(&node->attributes, ORTE_NODE_USERNAME, ORTE_ATTR_LOCAL, username, OPAL_STRING);
} }
opal_list_append(exclude, &node->super); opal_list_append(exclude, &node->super);
} else {
free(node_name);
} }
return ORTE_SUCCESS; return ORTE_SUCCESS;
} }
@ -262,7 +264,7 @@ static int hostfile_parse_line(int token, opal_list_t* updates,
if (1 == cnt) { if (1 == cnt) {
node_name = strdup(argv[0]); node_name = strdup(argv[0]);
} else if (2 == cnt) { } else if (2 == cnt) {
username = strdup(argv[0]); username = argv[0];
node_name = strdup(argv[1]); node_name = strdup(argv[1]);
} else { } else {
opal_output(0, "WARNING: Unhandled user@host-combination\n"); /* XXX */ opal_output(0, "WARNING: Unhandled user@host-combination\n"); /* XXX */
@ -299,9 +301,7 @@ static int hostfile_parse_line(int token, opal_list_t* updates,
hostfile_parse_error(token); hostfile_parse_error(token);
return ORTE_ERROR; return ORTE_ERROR;
} }
if (NULL != username) {
free(username); free(username);
}
while (!orte_util_hostfile_done) { while (!orte_util_hostfile_done) {
token = orte_util_hostfile_lex(); token = orte_util_hostfile_lex();