diff --git a/modules/seq/base/src/aligned_region.cc b/modules/seq/base/src/aligned_region.cc index decb966ef0533f5c9d0a1383d4f8ccb2f1ce36e4..3db9d14300fd53c4495c6c2df6c041197e05978f 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 1572cd50863aeb82a00660e3a0ba3d8a64a235f9..06edaf5d52067124afb76f6a3335c9844e1f3ed6 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);