@@ -232,7 +232,11 @@ mca_part_persist_progress(void)
232
232
233
233
err = opal_datatype_type_size (& (req -> req_datatype -> super ), & dt_size_ );
234
234
if (OMPI_SUCCESS != err ) goto end_part_progress ;
235
- dt_size = (dt_size_ > (size_t ) UINT_MAX ) ? MPI_UNDEFINED : (uint32_t ) dt_size_ ;
235
+ if (dt_size_ > (size_t ) UINT_MAX ) {
236
+ err = OMPI_ERR_UNKNOWN_DATA_TYPE ;
237
+ goto end_part_progress ;
238
+ }
239
+ dt_size = (uint32_t ) dt_size_ ;
236
240
uint32_t bytes = req -> real_count * dt_size ;
237
241
238
242
/* Set up persistent sends */
@@ -253,7 +257,11 @@ mca_part_persist_progress(void)
253
257
254
258
err = opal_datatype_type_size (& (req -> req_datatype -> super ), & dt_size_ );
255
259
if (OMPI_SUCCESS != err ) goto end_part_progress ;
256
- dt_size = (dt_size_ > (size_t ) UINT_MAX ) ? MPI_UNDEFINED : (uint32_t ) dt_size_ ;
260
+ if (dt_size_ > (size_t ) UINT_MAX ) {
261
+ err = OMPI_ERR_UNKNOWN_DATA_TYPE ;
262
+ goto end_part_progress ;
263
+ }
264
+ dt_size = (uint32_t ) dt_size_ ;
257
265
uint32_t bytes = req -> real_count * dt_size ;
258
266
259
267
/* Set up persistent receives */
@@ -355,8 +363,7 @@ mca_part_persist_precv_init(void *buf,
355
363
struct ompi_request_t * * request )
356
364
{
357
365
int err = OMPI_SUCCESS ;
358
- size_t dt_size_ ;
359
- uint32_t dt_size ;
366
+ size_t dt_size ;
360
367
mca_part_persist_list_t * new_progress_elem = NULL ;
361
368
362
369
mca_part_persist_precv_request_t * recvreq ;
@@ -387,10 +394,10 @@ mca_part_persist_precv_init(void *buf,
387
394
if (OMPI_SUCCESS != err ) return OMPI_ERROR ;
388
395
389
396
/* Compute total number of bytes */
390
- err = opal_datatype_type_size (& (req -> req_datatype -> super ), & dt_size_ );
397
+ err = opal_datatype_type_size (& (req -> req_datatype -> super ), & dt_size );
391
398
if (OMPI_SUCCESS != err ) return OMPI_ERROR ;
392
- dt_size = ( dt_size_ > (size_t ) UINT_MAX ) ? MPI_UNDEFINED : ( uint32_t ) dt_size_ ;
393
- req -> req_bytes = parts * count * dt_size ;
399
+ if ( dt_size > (size_t ) UINT_MAX ) return OMPI_ERR_UNKNOWN_DATA_TYPE ;
400
+ req -> req_bytes = parts * count * (( uint32_t ) dt_size ) ;
394
401
395
402
/* Set ompi request initial values */
396
403
req -> req_ompi .req_persistent = true;
@@ -448,7 +455,8 @@ mca_part_persist_psend_init(const void* buf,
448
455
/* Determine total bytes to send. */
449
456
err = opal_datatype_type_size (& (req -> req_datatype -> super ), & dt_size_ );
450
457
if (OMPI_SUCCESS != err ) return OMPI_ERROR ;
451
- dt_size = (dt_size_ > (size_t ) UINT_MAX ) ? MPI_UNDEFINED : (uint32_t ) dt_size_ ;
458
+ if (dt_size_ > (size_t ) UINT_MAX ) return OMPI_ERR_UNKNOWN_DATA_TYPE ;
459
+ dt_size = (uint32_t ) dt_size_ ;
452
460
req -> req_bytes = parts * count * dt_size ;
453
461
454
462
/* non-blocking send set-up data */
0 commit comments