diff --git a/orte/mca/odls/default/odls_default_module.c b/orte/mca/odls/default/odls_default_module.c index 0a60bd5414..bbd5517880 100644 --- a/orte/mca/odls/default/odls_default_module.c +++ b/orte/mca/odls/default/odls_default_module.c @@ -762,6 +762,10 @@ int orte_odls_default_launch_local_procs(orte_gpr_notify_data_t *data) OBJ_CONSTRUCT(&app_context_list, opal_list_t); + /* set the default values to INVALID */ + start = ORTE_VPID_INVALID; + range = ORTE_VPID_INVALID; + values = (orte_gpr_value_t**)(data->values)->addr; for (j=0, i=0; i < data->cnt && j < (data->values)->size; j++) { /* loop through all returned values */ if (NULL != values[j]) { @@ -773,9 +777,6 @@ int orte_odls_default_launch_local_procs(orte_gpr_notify_data_t *data) * the app_context(s), vpid_start, and vpid_range entries. Only one * value object should ever come from that container */ - /* set the default values to INVALID */ - start = ORTE_VPID_INVALID; - range = ORTE_VPID_INVALID; for (kv=0; kv < value->cnt; kv++) { kval = value->keyvals[kv]; if (strcmp(kval->key, ORTE_JOB_VPID_START_KEY) == 0) { diff --git a/orte/tools/orted/orted.c b/orte/tools/orted/orted.c index 8d9d8d0d2e..bb4ddfcdd2 100644 --- a/orte/tools/orted/orted.c +++ b/orte/tools/orted/orted.c @@ -608,22 +608,22 @@ static void orte_daemon_recv_pls(int status, orte_process_name_t* sender, n = 1; if (ORTE_SUCCESS != (ret = orte_dss.unpack(buffer, &command, &n, ORTE_DAEMON_CMD))) { ORTE_ERROR_LOG(ret); - goto DONE; + goto CLEANUP; } /* setup the answer */ - answer = OBJ_NEW(orte_buffer_t); if (NULL == answer) { ORTE_ERROR_LOG(ORTE_ERR_OUT_OF_RESOURCE); - goto DONE; + goto CLEANUP; } - + /* pack the command to ensure we always have something to send back, and * so that the caller can verify communication */ if (ORTE_SUCCESS != (ret = orte_dss.pack(answer, &command, 1, ORTE_DAEMON_CMD))) { ORTE_ERROR_LOG(ret); + OBJ_RELEASE(answer); goto CLEANUP; } @@ -705,9 +705,9 @@ DONE: if (0 > orte_rml.send_buffer(sender, answer, ORTE_RML_TAG_PLS_ORTED, 0)) { ORTE_ERROR_LOG(ORTE_ERR_COMM_FAILURE); } + OBJ_RELEASE(answer); CLEANUP: - OBJ_RELEASE(answer); OPAL_THREAD_UNLOCK(&orted_globals.mutex); /* reissue the non-blocking receive */