From ec6e4e52c0fcd8f928272a9e4a1d757a358a6661 Mon Sep 17 00:00:00 2001
From: Jonathan Guinet <jonathan.guinet@c-s.fr>
Date: Mon, 26 Sep 2011 15:15:21 +0200
Subject: [PATCH] BUG: bad memory access in ComputeInterval method from
 SpectralResponse class.

---
 Code/Simulation/otbSpectralResponse.txx | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
 mode change 100644 => 100755 Code/Simulation/otbSpectralResponse.txx

diff --git a/Code/Simulation/otbSpectralResponse.txx b/Code/Simulation/otbSpectralResponse.txx
old mode 100644
new mode 100755
index a64c12c47e..18298526f8
--- a/Code/Simulation/otbSpectralResponse.txx
+++ b/Code/Simulation/otbSpectralResponse.txx
@@ -239,7 +239,7 @@ SpectralResponse<TPrecision, TValuePrecision>
   while ((*it).second <= m_SensitivityThreshold)
     {
     ++it;
-    if (it == m_Response.end())
+    if (it == (m_Response.end()-1))
       {
       m_Interval.first = static_cast<TPrecision> (0.0);
       m_Interval.second = static_cast<TPrecision> (0.0);
@@ -249,15 +249,16 @@ SpectralResponse<TPrecision, TValuePrecision>
 
     }
   m_Interval.first = (*it).first;
-
-  while ((*it).second > m_SensitivityThreshold)
+  it = (m_Response.end()-1);
+  while ((*it).second <= m_SensitivityThreshold)
     {
-    if (it == m_Response.end())
+    if (it == (m_Response.begin()))
       {
       m_Interval.second = (*it).first;
+      m_IntervalComputed = true;
       return;
       }
-    ++it;
+    --it;
 
     }
 
-- 
GitLab