From a6b95b7e947af71fa2591f3f8b597aa662100f96 Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Tue, 11 May 2010 08:08:43 +0000
Subject: [PATCH] Fixes for AlignedRegion and SequenceImpl (bounds check)

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2227 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/seq/base/src/aligned_region.cc     | 3 +++
 modules/seq/base/src/impl/sequence_impl.cc | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/modules/seq/base/src/aligned_region.cc b/modules/seq/base/src/aligned_region.cc
index decb966ef..3db9d1430 100644
--- a/modules/seq/base/src/aligned_region.cc
+++ b/modules/seq/base/src/aligned_region.cc
@@ -115,6 +115,9 @@ int AlignedRegion::GetMaster() const
 
 void AlignedRegion::SetMaster(int master)
 {
+  if(master < -1 || master >= aln_.GetCount()){
+    throw IntegrityError("Master out of bounds");
+  }
   master_=master;
 }
 
diff --git a/modules/seq/base/src/impl/sequence_impl.cc b/modules/seq/base/src/impl/sequence_impl.cc
index 1572cd508..06edaf5d5 100644
--- a/modules/seq/base/src/impl/sequence_impl.cc
+++ b/modules/seq/base/src/impl/sequence_impl.cc
@@ -280,7 +280,7 @@ void SequenceImpl::Replace(const String& str,int start, int end)
 
 void SequenceImpl::ShiftRegion(int start, int end, int amount)
 {
-  if(start > end || start + amount <= 0 || end + amount > this->GetLength()){
+  if(start > end || start + amount < 0 || end + amount > this->GetLength()){
     throw std::out_of_range("ShiftRegion: invalid region");
   }
   String str1=seq_string_.substr(start, end-start);
-- 
GitLab