diff --git a/src/mca/gpr/proxy/gpr_proxy_compound_cmd.c b/src/mca/gpr/proxy/gpr_proxy_compound_cmd.c index 55525bd361..47e979e8b5 100644 --- a/src/mca/gpr/proxy/gpr_proxy_compound_cmd.c +++ b/src/mca/gpr/proxy/gpr_proxy_compound_cmd.c @@ -43,6 +43,7 @@ int mca_gpr_proxy_begin_compound_cmd(void) ompi_buffer_size(mca_gpr_proxy_compound_cmd, &size); if (0 < size) { ompi_buffer_free(mca_gpr_proxy_compound_cmd); + mca_gpr_proxy_compound_cmd = NULL; } } @@ -64,6 +65,7 @@ int mca_gpr_proxy_stop_compound_cmd(void) ompi_buffer_size(mca_gpr_proxy_compound_cmd, &size); if (0 < size) { ompi_buffer_free(mca_gpr_proxy_compound_cmd); + mca_gpr_proxy_compound_cmd = NULL; } } @@ -120,6 +122,7 @@ ompi_list_t* mca_gpr_proxy_exec_compound_cmd(bool return_requested) ompi_buffer_size(mca_gpr_proxy_compound_cmd, &size); if (0 < size) { ompi_buffer_free(mca_gpr_proxy_compound_cmd); + mca_gpr_proxy_compound_cmd = NULL; } } diff --git a/src/mca/gpr/replica/gpr_replica_compound_cmd.c b/src/mca/gpr/replica/gpr_replica_compound_cmd.c index db224b3db9..da5dbcdd37 100644 --- a/src/mca/gpr/replica/gpr_replica_compound_cmd.c +++ b/src/mca/gpr/replica/gpr_replica_compound_cmd.c @@ -45,6 +45,7 @@ int mca_gpr_replica_begin_compound_cmd(void) if (0 < size) { ompi_buffer_free(mca_gpr_replica_compound_cmd); } + mca_gpr_replica_compound_cmd = NULL; } ompi_buffer_init(&mca_gpr_replica_compound_cmd, 0); @@ -64,6 +65,7 @@ int mca_gpr_replica_stop_compound_cmd(void) ompi_buffer_size(mca_gpr_replica_compound_cmd, &size); if (0 < size) { ompi_buffer_free(mca_gpr_replica_compound_cmd); + mca_gpr_replica_compound_cmd = NULL; } } @@ -102,12 +104,14 @@ ompi_list_t* mca_gpr_replica_exec_compound_cmd(bool return_requested) } ompi_buffer_free(results); + results = NULL; mca_gpr_replica_compound_cmd_mode = false; if (NULL != mca_gpr_replica_compound_cmd) { /* shouldn't be any way this could be true, but just to be safe... */ ompi_buffer_size(mca_gpr_replica_compound_cmd, &size); if (0 < size) { ompi_buffer_free(mca_gpr_replica_compound_cmd); + mca_gpr_replica_compound_cmd = NULL; } } diff --git a/src/mca/gpr/replica/gpr_replica_del_index.c b/src/mca/gpr/replica/gpr_replica_del_index.c index bb4edcef97..ffd56da4da 100644 --- a/src/mca/gpr/replica/gpr_replica_del_index.c +++ b/src/mca/gpr/replica/gpr_replica_del_index.c @@ -69,6 +69,9 @@ void mca_gpr_replica_delete_segment_nl(mca_gpr_replica_segment_t *seg) /* remove segment name from global registry dictionary */ mca_gpr_replica_delete_key(seg, NULL); + + /* release the segment pointer */ + OBJ_RELEASE(seg); return; } diff --git a/src/mca/gpr/replica/gpr_replica_internals_segment_ops.c b/src/mca/gpr/replica/gpr_replica_internals_segment_ops.c index 76fb3b7b90..350ff887c0 100644 --- a/src/mca/gpr/replica/gpr_replica_internals_segment_ops.c +++ b/src/mca/gpr/replica/gpr_replica_internals_segment_ops.c @@ -118,7 +118,6 @@ int mca_gpr_replica_empty_segment(mca_gpr_replica_segment_t *seg) /* now remove segment from global registry */ ompi_list_remove_item(&mca_gpr_replica_head.registry, &seg->item); - OBJ_RELEASE(seg); return OMPI_SUCCESS;