@@ -188,6 +188,8 @@ static void job_data(struct pmix_peer_t *pr, pmix_usock_hdr_t *hdr,
188
188
cb -> active = false;
189
189
return ;
190
190
}
191
+ assert (NULL != nspace );
192
+ free (nspace );
191
193
/* decode it */
192
194
pmix_client_process_nspace_blob (pmix_globals .myid .nspace , buf );
193
195
cb -> status = PMIX_SUCCESS ;
@@ -1120,7 +1122,6 @@ void pmix_client_process_nspace_blob(const char *nspace, pmix_buffer_t *bptr)
1120
1122
bo = & (kptr -> value -> data .bo );
1121
1123
PMIX_CONSTRUCT (& buf2 , pmix_buffer_t );
1122
1124
PMIX_LOAD_BUFFER (& buf2 , bo -> bytes , bo -> size );
1123
- PMIX_RELEASE (kptr );
1124
1125
/* start by unpacking the rank */
1125
1126
cnt = 1 ;
1126
1127
if (PMIX_SUCCESS != (rc = pmix_bfrop .unpack (& buf2 , & rank , & cnt , PMIX_PROC_RANK ))) {
@@ -1156,7 +1157,6 @@ void pmix_client_process_nspace_blob(const char *nspace, pmix_buffer_t *bptr)
1156
1157
bo = & (kptr -> value -> data .bo );
1157
1158
PMIX_CONSTRUCT (& buf2 , pmix_buffer_t );
1158
1159
PMIX_LOAD_BUFFER (& buf2 , bo -> bytes , bo -> size );
1159
- PMIX_RELEASE (kptr );
1160
1160
/* start by unpacking the number of nodes */
1161
1161
cnt = 1 ;
1162
1162
if (PMIX_SUCCESS != (rc = pmix_bfrop .unpack (& buf2 , & nnodes , & cnt , PMIX_SIZE ))) {
@@ -1225,11 +1225,8 @@ void pmix_client_process_nspace_blob(const char *nspace, pmix_buffer_t *bptr)
1225
1225
if (PMIX_SUCCESS != (rc = pmix_hash_store (& nsptr -> internal , PMIX_RANK_WILDCARD , kptr ))) {
1226
1226
PMIX_ERROR_LOG (rc );
1227
1227
}
1228
- /* maintain accounting - but note that the kptr remains
1229
- * alive and stored in the hash table! So we cannot reuse
1230
- * it for some other purpose */
1231
- PMIX_RELEASE (kptr );
1232
1228
}
1229
+ PMIX_RELEASE (kptr );
1233
1230
kptr = PMIX_NEW (pmix_kval_t );
1234
1231
cnt = 1 ;
1235
1232
}
0 commit comments