mirror of
https://github.com/taglib/taglib.git
synced 2025-06-04 01:28:21 -04:00
Avoid possible iterators' out-of-range
This commit is contained in:
parent
86cee56f74
commit
27115557a0
@ -166,13 +166,19 @@ namespace TagLib {
|
||||
TIterator itBuffer = it;
|
||||
TIterator itPattern = patternBegin + patternSize - 1;
|
||||
|
||||
while(itPattern >= patternBegin && *itBuffer == *itPattern) {
|
||||
--itBuffer;
|
||||
--itPattern;
|
||||
}
|
||||
while(*itBuffer == *itPattern)
|
||||
{
|
||||
if(itPattern == patternBegin)
|
||||
{
|
||||
if((itBuffer - dataBegin - offset) % byteAlign == 0)
|
||||
return (itBuffer - dataBegin);
|
||||
else
|
||||
break;
|
||||
}
|
||||
|
||||
if(itPattern < patternBegin && (itBuffer - dataBegin + 1 - offset) % byteAlign == 0)
|
||||
return (itBuffer - dataBegin + 1);
|
||||
--itBuffer;
|
||||
--itPattern;
|
||||
}
|
||||
}
|
||||
|
||||
return ByteVector::npos;
|
||||
|
Loading…
x
Reference in New Issue
Block a user