Fix memory leak in SSM QueryEngine
authorAnkur Bansal <ankur.b1@samsung.com>
Thu, 25 Jun 2015 05:18:36 +0000 (10:48 +0530)
committerUze Choi <uzchoi@samsung.com>
Wed, 1 Jul 2015 02:19:06 +0000 (02:19 +0000)
Fix memory leak in processQueryResult. Allocate pModelData only when
previous operations were successful.

Change-Id: I4829c729d10233ee263c75af533c22782a4659ee
Signed-off-by: Ankur Bansal <ankur.b1@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/1428
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Minji Park <minjii.park@samsung.com>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
service/soft-sensor-manager/SSMCore/src/QueryProcessor/QueryEngine.cpp

index 7399891..4d2a117 100644 (file)
@@ -137,13 +137,14 @@ SSMRESULT CQueryEngine::processQueryResult(int userTriggerId,
 
         for (unsigned int j = 0; j < (result_model_data_id)[i].dataId.size(); j++)
         {
-            CModelData *pModelData = new CModelData();
+            CModelData *pModelData = NULL;
             IContextModel       *pCM = NULL;
             ModelPropertyVec    modelPropertyVec;
 
             SSM_CLEANUP_ASSERT(m_pPropagationEngine->getContextModel((result_model_data_id)[i].modelName,
                                &pCM));
             SSM_CLEANUP_ASSERT(pCM->getModelData((result_model_data_id)[i].dataId[j], &modelPropertyVec));
+            pModelData = new CModelData();
             pModelData->setDataId((result_model_data_id)[i].dataId[j]);
             for (ModelPropertyVec::iterator itor = modelPropertyVec.begin();
                  itor != modelPropertyVec.end(); ++itor)