From 53978c440d9d8889cc9b873fdaed2f56e354e997 Mon Sep 17 00:00:00 2001
From: Julien Michel <julien.michel@orfeo-toolbox.org>
Date: Wed, 4 Feb 2015 17:34:08 +0100
Subject: [PATCH] COV: Fixing coverities medium issues for OssimPlugins

---
 .../RadarSat/CommonRecord/RadiometricData.cpp |  2 +-
 .../ossim/ossimGeometricSarSensorModel.cpp    | 28 +++++++++++++------
 .../ossim/ossimRadarSat2Model.cpp             |  6 +++-
 .../ossim/ossimRadarSat2RPCModel.cpp          |  6 +++-
 .../ossim/otb/HermiteInterpolator.cpp         |  2 +-
 .../ossim/otb/SensorParams.cpp                |  1 -
 6 files changed, 31 insertions(+), 14 deletions(-)

diff --git a/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricData.cpp b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricData.cpp
index b8a4e4022e..e7adce638d 100644
--- a/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricData.cpp
+++ b/Utilities/otbossimplugins/ossim/RadarSat/CommonRecord/RadiometricData.cpp
@@ -160,7 +160,7 @@ RadiometricData& RadiometricData::operator=(const RadiometricData& rhs)
 
     _n_data = rhs._n_data;
 
-    _field_size = _field_size;
+    _field_size = rhs._field_size;
 
 	_chan_ind = rhs._chan_ind;
 
diff --git a/Utilities/otbossimplugins/ossim/ossimGeometricSarSensorModel.cpp b/Utilities/otbossimplugins/ossim/ossimGeometricSarSensorModel.cpp
index cc0ab80e81..a111712063 100644
--- a/Utilities/otbossimplugins/ossim/ossimGeometricSarSensorModel.cpp
+++ b/Utilities/otbossimplugins/ossim/ossimGeometricSarSensorModel.cpp
@@ -69,7 +69,14 @@ namespace ossimplugins
       _imageFilename(rhs._imageFilename),
       _productXmlFile(rhs._productXmlFile)
    {
-      _sarSensor = new SarSensor(_sensor,_platformPosition);
+     if(_sensor && _platformPosition)
+       {
+       _sarSensor = new SarSensor(_sensor,_platformPosition);
+       }
+     else
+       {
+       _sarSensor = NULL;
+       }
    }
 
    ossimGeometricSarSensorModel::~ossimGeometricSarSensorModel()
@@ -248,14 +255,17 @@ namespace ossimplugins
          ++itEstimatedCoords;
       }
 
-      xErrorMean /= nbPoints ;
-      yErrorMean /= nbPoints ;
-      xActualMean /= nbPoints ;
-      yActualMean /= nbPoints ;
-      xActualPow /= nbPoints ;
-      yActualPow /= nbPoints ;
-      xErrorByActualMean /= nbPoints ;
-      yErrorByActualMean /= nbPoints ;
+      if(nbPoints>0)
+        {
+        xErrorMean /= nbPoints ;
+        yErrorMean /= nbPoints ;
+        xActualMean /= nbPoints ;
+        yActualMean /= nbPoints ;
+        xActualPow /= nbPoints ;
+        yActualPow /= nbPoints ;
+        xErrorByActualMean /= nbPoints ;
+        yErrorByActualMean /= nbPoints ;
+        }
 
       // linear regression
       if (fabs(xActualPow - xActualMean*xActualMean) > FLT_EPSILON)
diff --git a/Utilities/otbossimplugins/ossim/ossimRadarSat2Model.cpp b/Utilities/otbossimplugins/ossim/ossimRadarSat2Model.cpp
index 5f361043d7..7ab9ac8af1 100644
--- a/Utilities/otbossimplugins/ossim/ossimRadarSat2Model.cpp
+++ b/Utilities/otbossimplugins/ossim/ossimRadarSat2Model.cpp
@@ -205,7 +205,11 @@ bool ossimRadarSat2Model::open(const ossimFilename& file)
             }
 
             // Set the base class gsd:
+            if(result)
+            {
             result = rsDoc.initGsd(xdoc, theGSD);
+            }
+
             if (result)
             {
                theMeanGSD = (theGSD.x + theGSD.y)/2.0;
@@ -462,7 +466,7 @@ bool ossimRadarSat2Model::InitPlatformPosition(const ossimKeywordlist &kwl, cons
 
       if (! ossim::iso8601TimeStringToCivilDate(utcString, eph_civil_date)) 
         {
-        delete ephemeris;
+        delete [] ephemeris;
         return false;
         }
 
diff --git a/Utilities/otbossimplugins/ossim/ossimRadarSat2RPCModel.cpp b/Utilities/otbossimplugins/ossim/ossimRadarSat2RPCModel.cpp
index c337d7d109..de872568aa 100644
--- a/Utilities/otbossimplugins/ossim/ossimRadarSat2RPCModel.cpp
+++ b/Utilities/otbossimplugins/ossim/ossimRadarSat2RPCModel.cpp
@@ -204,7 +204,11 @@ bool ossimRadarSat2RPCModel::open(const ossimFilename& file)
             }
 
             // Set the base class gsd:
-            result = rsDoc.initGsd(xdoc, theGSD);
+            if(result)
+              {
+              result = rsDoc.initGsd(xdoc, theGSD);
+              }
+
             if (result)
             {
                theMeanGSD = (theGSD.x + theGSD.y)/2.0;
diff --git a/Utilities/otbossimplugins/ossim/otb/HermiteInterpolator.cpp b/Utilities/otbossimplugins/ossim/otb/HermiteInterpolator.cpp
index 2731dcc407..0decfda00a 100644
--- a/Utilities/otbossimplugins/ossim/otb/HermiteInterpolator.cpp
+++ b/Utilities/otbossimplugins/ossim/otb/HermiteInterpolator.cpp
@@ -86,7 +86,7 @@ HermiteInterpolator::HermiteInterpolator(int nbrPoints, double* x, double* y, do
      */
 //    if (theXValues[i] <= theXValues[i-1])
 //      std::cerr << "WARNING: Hermite interpolation assumes increasing x values" << std::endl;
-    assert(theXValues[i] > theXValues[i-1]);
+    assert(theXValues && theXValues[i] > theXValues[i-1]);
   }
 }
 
diff --git a/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp b/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp
index 4cf3903175..eabce5463c 100644
--- a/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp
+++ b/Utilities/otbossimplugins/ossim/otb/SensorParams.cpp
@@ -252,7 +252,6 @@ bool SensorParams::loadState(const ossimKeywordlist& kwl, const char* prefix)
    {
       result = false;
    }
-   return result;
 
    lookup = kwl.find(pfx.c_str(), DOPCENLINEAR_KW);
    if (lookup)
-- 
GitLab