From 292e1f59b56ed5ccb39dad905aa4ba944196a487 Mon Sep 17 00:00:00 2001 From: Piero Toffanin Date: Tue, 17 Mar 2020 19:53:22 +0000 Subject: [PATCH] Array overflow fix Former-commit-id: 543cc6b14d0ead757340fe84b843640342269b33 --- modules/odm_orthophoto/src/OdmOrthoPhoto.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/odm_orthophoto/src/OdmOrthoPhoto.cpp b/modules/odm_orthophoto/src/OdmOrthoPhoto.cpp index 2f7fa218..2278bb38 100644 --- a/modules/odm_orthophoto/src/OdmOrthoPhoto.cpp +++ b/modules/odm_orthophoto/src/OdmOrthoPhoto.cpp @@ -276,7 +276,7 @@ inline T maxRange(){ template void OdmOrthoPhoto::initBands(int count){ - size_t pixelCount = static_cast(width * height); + size_t pixelCount = static_cast(width) * static_cast(height); // Channels for (int i = 0; i < count; i++){ @@ -290,7 +290,7 @@ void OdmOrthoPhoto::initBands(int count){ template void OdmOrthoPhoto::initAlphaBand(){ - size_t pixelCount = static_cast(width * height); + size_t pixelCount = static_cast(width) * static_cast(height); // Alpha if (alphaBand == nullptr){ T *arr = new T[pixelCount]; @@ -306,7 +306,7 @@ void OdmOrthoPhoto::finalizeAlphaBand(){ // Adjust alpha band values, only pixels that have // values on all bands should be visible - size_t pixelCount = static_cast(width * height); + size_t pixelCount = static_cast(width) * static_cast(height); int channels = bands.size(); T *arr = reinterpret_cast(alphaBand); @@ -925,7 +925,7 @@ void OdmOrthoPhoto::renderPixel(int row, int col, float s, float t, const cv::Ma top = static_cast(topF); // The interpolated color values. - size_t idx = static_cast(row * width + col); + size_t idx = static_cast(row) * static_cast(width) + static_cast(col); T *data = reinterpret_cast(texture.data); // Faster access int numChannels = texture.channels();