@@ -586,19 +586,43 @@ void prte_grpcomm_direct_grp_recv(int status, pmix_proc_t *sender,
586586 PMIx_Info_list_convert (coll -> grpinfo , & darray );
587587 info = (pmix_info_t * )darray .array ;
588588 ninfo = darray .size ;
589- PMIx_Data_pack (NULL , reply , & ninfo , 1 , PMIX_SIZE );
589+ rc = PMIx_Data_pack (NULL , reply , & ninfo , 1 , PMIX_SIZE );
590+ if (PMIX_SUCCESS != rc ) {
591+ PMIX_ERROR_LOG (rc );
592+ PMIX_DATA_BUFFER_RELEASE (reply );
593+ PMIX_RELEASE (sig );
594+ return ;
595+ }
590596 if (0 < ninfo ) {
591- PMIx_Data_pack (NULL , reply , info , ninfo , PMIX_INFO );
597+ rc = PMIx_Data_pack (NULL , reply , info , ninfo , PMIX_INFO );
598+ if (PMIX_SUCCESS != rc ) {
599+ PMIX_ERROR_LOG (rc );
600+ PMIX_DATA_BUFFER_RELEASE (reply );
601+ PMIX_RELEASE (sig );
602+ return ;
603+ }
592604 }
593605 PMIX_DATA_ARRAY_DESTRUCT (& darray );
594606
595607 // pack any endpts
596608 PMIx_Info_list_convert (coll -> endpts , & darray );
597609 info = (pmix_info_t * )darray .array ;
598610 ninfo = darray .size ;
599- PMIx_Data_pack (NULL , reply , & ninfo , 1 , PMIX_SIZE );
611+ rc = PMIx_Data_pack (NULL , reply , & ninfo , 1 , PMIX_SIZE );
612+ if (PMIX_SUCCESS != rc ) {
613+ PMIX_ERROR_LOG (rc );
614+ PMIX_DATA_BUFFER_RELEASE (reply );
615+ PMIX_RELEASE (sig );
616+ return ;
617+ }
600618 if (0 < ninfo ) {
601- PMIx_Data_pack (NULL , reply , info , ninfo , PMIX_INFO );
619+ rc = PMIx_Data_pack (NULL , reply , info , ninfo , PMIX_INFO );
620+ if (PMIX_SUCCESS != rc ) {
621+ PMIX_ERROR_LOG (rc );
622+ PMIX_DATA_BUFFER_RELEASE (reply );
623+ PMIX_RELEASE (sig );
624+ return ;
625+ }
602626 }
603627 PMIX_DATA_ARRAY_DESTRUCT (& darray );
604628 }
0 commit comments