1
1

Merge pull request #6485 from awlauria/indexed_datatype_overflows_v4.0.x

v4.0.x: Fix integer overflows with indexed datatype creation.
Этот коммит содержится в:
Howard Pritchard 2019-03-13 14:38:15 -06:00 коммит произвёл GitHub
родитель e3e039b559 8138cdbb49
Коммит b5a81afe54
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23

Просмотреть файл

@ -15,6 +15,7 @@
* Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
* Copyright (c) 2015-2017 Research Organization for Information Science
* and Technology (RIST). All rights reserved.
* Copyright (c) 2019 IBM Corporation. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -34,8 +35,9 @@ int32_t ompi_datatype_create_indexed( int count, const int* pBlockLength, const
const ompi_datatype_t* oldType, ompi_datatype_t** newType )
{
ompi_datatype_t* pdt;
int i, dLength, endat, disp;
ptrdiff_t extent;
int i;
ptrdiff_t extent, disp, endat;
size_t dLength;
if( 0 == count ) {
return ompi_datatype_duplicate( &ompi_mpi_datatype_null.dt, newType);
@ -70,8 +72,9 @@ int32_t ompi_datatype_create_hindexed( int count, const int* pBlockLength, const
const ompi_datatype_t* oldType, ompi_datatype_t** newType )
{
ompi_datatype_t* pdt;
int i, dLength;
int i;
ptrdiff_t extent, disp, endat;
size_t dLength;
if( 0 == count ) {
*newType = ompi_datatype_create( 0 );
@ -108,8 +111,9 @@ int32_t ompi_datatype_create_indexed_block( int count, int bLength, const int* p
const ompi_datatype_t* oldType, ompi_datatype_t** newType )
{
ompi_datatype_t* pdt;
int i, dLength, endat, disp;
ptrdiff_t extent;
int i;
ptrdiff_t extent, disp, endat;
size_t dLength;
ompi_datatype_type_extent( oldType, &extent );
if( (count == 0) || (bLength == 0) ) {
@ -147,8 +151,9 @@ int32_t ompi_datatype_create_hindexed_block( int count, int bLength, const ptrdi
const ompi_datatype_t* oldType, ompi_datatype_t** newType )
{
ompi_datatype_t* pdt;
int i, dLength;
int i;
ptrdiff_t extent, disp, endat;
size_t dLength;
ompi_datatype_type_extent( oldType, &extent );
if( (count == 0) || (bLength == 0) ) {