to an integer before trying to convert it and (b) make sure that there's data
in an APE::Item before trying to parse it.
BUG:92028
git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@358637
283d02a7-25f6-0310-bc7c-
ecb5cbfe19da
}
}
-void APE::Item::parse(const ByteVector& data)
+void APE::Item::parse(const ByteVector &data)
{
+ if(data.size() < 10) {
+ debug("APE::Item::parse() -- no data in item");
+ return;
+ }
+
uint valueLength = data.mid(0, 4).toUInt(false);
uint flags = data.mid(4, 4).toUInt(false);
T toNumber(const std::vector<char> &data, bool mostSignificantByteFirst)
{
T sum = 0;
+
+ if(data.size() <= 0) {
+ debug("ByteVectorMirror::toNumber<T>() -- data is empty, returning 0");
+ return sum;
+ }
+
uint size = sizeof(T);
uint last = data.size() > size ? size - 1 : data.size() - 1;