From 99c24492ada06e81f22db4718a0653136794d567 Mon Sep 17 00:00:00 2001
From: Julien Michel <julien.michel@orfeo-toolbox.org>
Date: Tue, 3 Feb 2015 11:41:12 +0100
Subject: [PATCH] COV: Fixing coverity issues (unchecked dynamic cast)

---
 Code/IO/otbImageToOSMVectorDataGenerator.txx |  5 +++++
 Code/IO/otbOGRVectorDataIO.cxx               | 12 ++++++++++++
 2 files changed, 17 insertions(+)

diff --git a/Code/IO/otbImageToOSMVectorDataGenerator.txx b/Code/IO/otbImageToOSMVectorDataGenerator.txx
index 453e876e28..87f2ec062a 100644
--- a/Code/IO/otbImageToOSMVectorDataGenerator.txx
+++ b/Code/IO/otbImageToOSMVectorDataGenerator.txx
@@ -31,6 +31,11 @@ ImageToOSMVectorDataGenerator<TImage>
 {
   this->SetNumberOfRequiredInputs(1);
   this->SetNumberOfRequiredOutputs(1);
+
+  m_ImageExtent.minX = 0;
+  m_ImageExtent.maxX = 0;
+  m_ImageExtent.minY = 0;
+  m_ImageExtent.maxY = 0;
 }
 
 template < class TImage >
diff --git a/Code/IO/otbOGRVectorDataIO.cxx b/Code/IO/otbOGRVectorDataIO.cxx
index c2d1aae4e4..cd2b744bda 100644
--- a/Code/IO/otbOGRVectorDataIO.cxx
+++ b/Code/IO/otbOGRVectorDataIO.cxx
@@ -80,6 +80,12 @@ OGRVectorDataIO
 {
   VectorDataPointerType data = dynamic_cast<VectorDataType*>(datag);
   // Destroy previous opened data source
+
+  if(!data)
+    {
+    itkExceptionMacro(<<"Failed to dynamic cast to otb::VectorData (this should never happen)");
+    }
+
   if (m_DataSource != NULL)
     {
     OGRDataSource::DestroyDataSource(m_DataSource);
@@ -195,6 +201,12 @@ void OGRVectorDataIO::Write(const itk::DataObject* datag, char ** papszOptions)
 
   VectorDataConstPointerType data = dynamic_cast<const VectorDataType*>(datag);
 
+  if(!data)
+    {
+    itkExceptionMacro(<<"Failed to dynamic cast to otb::VectorData (this should never happen).");
+    }
+
+
   //Find first the OGR driver
   OGRSFDriver * ogrDriver =
     OGRSFDriverRegistrar::GetRegistrar()->GetDriverByName(this->GetOGRDriverName(this->m_FileName).data());
-- 
GitLab