unsigned long packetSize = readSize(file, packetSizeLength);
unsigned long dataSize = packetSize - 2 - packetSizeLength;
+ const ByteVector data = file->readBlock(dataSize);
+ if(data.size() != dataSize) {
+ debug("MPC::Properties::readSV8() - dataSize doesn't match the actual data size.");
+ break;
+ }
+
if(packetType == "SH") {
// Stream Header
// http://trac.musepack.net/wiki/SV8Specification#StreamHeaderPacket
- ByteVector data = file->readBlock(dataSize);
readSH = true;
TagLib::uint pos = 4;
else if (packetType == "RG") {
// Replay Gain
// http://trac.musepack.net/wiki/SV8Specification#ReplaygainPacket
- ByteVector data = file->readBlock(dataSize);
readRG = true;
int replayGainVersion = data[0];
CPPUNIT_TEST(testPropertiesSV5);
CPPUNIT_TEST(testPropertiesSV4);
CPPUNIT_TEST(testFuzzedFile1);
+ CPPUNIT_TEST(testFuzzedFile2);
CPPUNIT_TEST_SUITE_END();
public:
CPPUNIT_ASSERT(f.isValid());
}
+ void testFuzzedFile2()
+ {
+ MPC::File f(TEST_FILE_PATH_C("infloop.mpc"));
+ CPPUNIT_ASSERT(f.isValid());
+ }
+
};
CPPUNIT_TEST_SUITE_REGISTRATION(TestMPC);