mirror of
https://github.com/taglib/taglib.git
synced 2025-07-18 21:14:23 -04:00
Fix a possible out-of-bounds access in SynchData::decode().
This also avoids an extra memory copy.
This commit is contained in:
@ -41,6 +41,7 @@ class TestID3v2SynchData : public CppUnit::TestFixture
|
||||
CPPUNIT_TEST(testDecode1);
|
||||
CPPUNIT_TEST(testDecode2);
|
||||
CPPUNIT_TEST(testDecode3);
|
||||
CPPUNIT_TEST(testDecode4);
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
|
||||
public:
|
||||
@ -113,6 +114,14 @@ public:
|
||||
CPPUNIT_ASSERT_EQUAL(ByteVector("\xff\xff", 2), a);
|
||||
}
|
||||
|
||||
void testDecode4()
|
||||
{
|
||||
ByteVector a("\xff\xff\xff", 3);
|
||||
a = ID3v2::SynchData::decode(a);
|
||||
CPPUNIT_ASSERT_EQUAL((unsigned int)3, a.size());
|
||||
CPPUNIT_ASSERT_EQUAL(ByteVector("\xff\xff\xff", 3), a);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
CPPUNIT_TEST_SUITE_REGISTRATION(TestID3v2SynchData);
|
||||
|
Reference in New Issue
Block a user