Fix reading corrupted ID3v2 syncdata

This commit is contained in:
Tsuda kageyu 2013-04-20 09:28:19 +09:00
parent 457b1abac8
commit 8a7d1dd796

View File

@ -49,7 +49,14 @@ TagLib::uint SynchData::toUInt(const ByteVector &data)
// Invalid data; assume this was created by some buggy software that just
// put normal integers here rather than syncsafe ones, and try it that
// way.
sum = data.toUInt();
if(data.size() >= 4) {
sum = data.toUInt(0, true);
}
else {
ByteVector tmp(data);
tmp.resize(4);
sum = tmp.toUInt(0, true);
}
}
return sum;