]> granicus.if.org Git - taglib/commitdiff
Don't try to read the properties from the bytevector if it's smaller than
authorScott Wheeler <wheeler@kde.org>
Thu, 24 Jun 2004 15:48:58 +0000 (15:48 +0000)
committerScott Wheeler <wheeler@kde.org>
Thu, 24 Jun 2004 15:48:58 +0000 (15:48 +0000)
the required size; in this case empty.  Also some minor nitpicks along the
way.

CCMAIL:83898-done@bugs.kde.org

git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@323360 283d02a7-25f6-0310-bc7c-ecb5cbfe19da

flac/flacproperties.cpp
flac/flacproperties.h

index 81d82a34d7f5bf0747fca654f76374d3205c43fd..0a18c337296bcd1b87ef9091a1d21d6aaf346f81 100644 (file)
@@ -102,6 +102,11 @@ int FLAC::Properties::channels() const
 
 void FLAC::Properties::read()
 {
+  if(d->data.size() < 18) {
+    debug("FLAC::Properties::read() - FLAC properties must contain at least 18 bytes.");
+    return;
+  }
+
   int pos = 0;
 
   // Minimum block size (in samples)
@@ -121,13 +126,13 @@ void FLAC::Properties::read()
   d->channels = ((flags >> 9) & 7) + 1;
   d->sampleWidth = ((flags >> 4) & 31) + 1;
 
-  // The last 4 bit are the most significant 4 bits for the 36bit
-  // streamlength in samples. (Audio files measured in days)
+  // The last 4 bits are the most significant 4 bits for the 36 bit
+  // stream length in samples. (Audio files measured in days)
 
-  uint highlength = (((flags & 0xf) << 28) / d->sampleRate) << 4;
+  uint highLength = (((flags & 0xf) << 28) / d->sampleRate) << 4;
   pos += 4;
 
-  d->length = (d->data.mid(pos, 4).toUInt(true)) / d->sampleRate + highlength;
+  d->length = (d->data.mid(pos, 4).toUInt(true)) / d->sampleRate + highLength;
   pos += 4;
 
   // Uncompressed bitrate:
@@ -136,8 +141,8 @@ void FLAC::Properties::read()
   
   // Real bitrate:
   
-  if (d->length)
-    d->bitrate = ((d->streamLength*8L) / d->length)/1000;
+  if(d->length)
+    d->bitrate = ((d->streamLength * 8L) / d->length) / 1000;
   else
     d->bitrate = 0;
   
index 5eaefc2553c4e89f67a95b58d2636931f813a571..c1d1a4faec038a058bc59b638561bac455ee00bb 100644 (file)
@@ -44,13 +44,15 @@ namespace TagLib {
        * Create an instance of FLAC::Properties with the data read from the
        * ByteVector \a data.
        */
+       // BIC: switch to const reference
       Properties(ByteVector data, long streamLength, ReadStyle style = Average);
 
       /*!
        * Create an instance of FLAC::Properties with the data read from the
        * FLAC::File \a file.
        */
-      Properties(File *file, ReadStyle style = Average); // BIC: remove
+       // BIC: remove
+      Properties(File *file, ReadStyle style = Average);
 
       /*!
        * Destroys this FLAC::Properties instance.