mirror of
				https://github.com/taglib/taglib.git
				synced 2025-11-04 08:45:10 -05:00 
			
		
		
		
	Make sure that there's (a) data in a bytevector that we're trying to convert
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
This commit is contained in:
		@ -123,8 +123,13 @@ bool APE::Item::isEmpty() const
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -189,6 +189,12 @@ namespace TagLib {
 | 
			
		||||
  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;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user