File tree Expand file tree Collapse file tree 1 file changed +5
-2
lines changed Expand file tree Collapse file tree 1 file changed +5
-2
lines changed Original file line number Diff line number Diff line change @@ -327,7 +327,7 @@ bool ID3::removeUnsynchronizationV2_4(bool iTunesHack) {
327
327
size_t oldSize = mSize ;
328
328
329
329
size_t offset = 0 ;
330
- while (offset + 10 <= mSize ) {
330
+ while (mSize >= 10 && offset <= mSize - 10 ) {
331
331
if (!memcmp (&mData [offset], " \0\0\0\0 " , 4 )) {
332
332
break ;
333
333
}
@@ -339,7 +339,7 @@ bool ID3::removeUnsynchronizationV2_4(bool iTunesHack) {
339
339
return false ;
340
340
}
341
341
342
- if (offset + dataSize + 10 > mSize ) {
342
+ if (dataSize > mSize - 10 - offset ) {
343
343
return false ;
344
344
}
345
345
@@ -349,6 +349,9 @@ bool ID3::removeUnsynchronizationV2_4(bool iTunesHack) {
349
349
if (flags & 1 ) {
350
350
// Strip data length indicator
351
351
352
+ if (mSize < 14 || mSize - 14 < offset) {
353
+ return false ;
354
+ }
352
355
memmove (&mData [offset + 10 ], &mData [offset + 14 ], mSize - offset - 14 );
353
356
mSize -= 4 ;
354
357
dataSize -= 4 ;
You can’t perform that action at this time.
0 commit comments