From 236d66c2798fc133306ad5c48b06caaade09b556 Mon Sep 17 00:00:00 2001 From: Holger Friedrich <friedrich@fias.uni-frankfurt.de> Date: Tue, 29 Jul 2014 11:19:30 +0200 Subject: [PATCH] fixed memory leaks unveiled by static code analysis --- package_bgs/av/TBackgroundVuMeter.cpp | 2 +- package_bgs/jmo/BlobExtraction.cpp | 13 +++++++++---- package_bgs/tb/FuzzyUtils.cpp | 3 ++- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/package_bgs/av/TBackgroundVuMeter.cpp b/package_bgs/av/TBackgroundVuMeter.cpp index 5aab897..5c802ce 100644 --- a/package_bgs/av/TBackgroundVuMeter.cpp +++ b/package_bgs/av/TBackgroundVuMeter.cpp @@ -56,7 +56,7 @@ void TBackgroundVuMeter::Clear(void) cvReleaseImage(&m_pHist[i]); } - delete m_pHist; + delete[] m_pHist; m_pHist = NULL; m_nBinCount = 0; } diff --git a/package_bgs/jmo/BlobExtraction.cpp b/package_bgs/jmo/BlobExtraction.cpp index cd728fe..c3d2bea 100644 --- a/package_bgs/jmo/BlobExtraction.cpp +++ b/package_bgs/jmo/BlobExtraction.cpp @@ -1241,7 +1241,12 @@ namespace Blob } } // end Main loop - if (ErrorFlag != 0) return false; + if (ErrorFlag != 0) { + delete[] Transition; + delete[] ThisRegion; + delete[] LastRegion; + return false; + } // ens situem al primer pixel de la seguent fila pImage = inputImage->imageData - 1 + startCol + (ThisRow + startRow) * inputImage->widthStep; @@ -1362,9 +1367,9 @@ namespace Blob //free(RegionData); free(SubsumedRegion); - delete Transition; - delete ThisRegion; - delete LastRegion; + delete[] Transition; + delete[] ThisRegion; + delete[] LastRegion; if (imatgePerimetreExtern) cvReleaseImage(&imatgePerimetreExtern); diff --git a/package_bgs/tb/FuzzyUtils.cpp b/package_bgs/tb/FuzzyUtils.cpp index 84d5a50..fcb1972 100644 --- a/package_bgs/tb/FuzzyUtils.cpp +++ b/package_bgs/tb/FuzzyUtils.cpp @@ -338,7 +338,6 @@ void FuzzyUtils::getFuzzyIntegralChoquet(IplImage* H, IplImage* Delta, int n, fl float *Integral = (float*) malloc(3*(sizeof(float))); float* X = (float*) malloc(1*sizeof(float)); float* XiXj = (float*) malloc(1*sizeof(float)); - float* IntegralFlou1 = (float*) malloc(1*sizeof(float)); float IntegralFlou; *Indice = 0; @@ -508,4 +507,6 @@ void FuzzyUtils::AdaptativeSelectiveBackgroundModelUpdate(IplImage* CurrentImage free(BGImagePixel); free(OutputImagePixel); free(IntegralImagePixel); + free(Maximum); + free(Minimum); } -- GitLab