]> granicus.if.org Git - taglib/commitdiff
fix crash on wma file parsing, add clarifications to API docs
authorNick Shaforostoff <shafff@ukr.net>
Fri, 28 Jan 2011 13:18:36 +0000 (13:18 +0000)
committerNick Shaforostoff <shafff@ukr.net>
Fri, 28 Jan 2011 13:18:36 +0000 (13:18 +0000)
CCMAIL: wheeler@kde.org

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

taglib/asf/asffile.cpp
taglib/fileref.h
taglib/toolkit/tstring.h

index acfbe7591cdec780d3e97ef4d65d525ed8901345..5c23ceb3f820d002b4eec8d4815253e17cd4fb5c 100644 (file)
@@ -148,7 +148,11 @@ public:
 
 void ASF::File::BaseObject::parse(ASF::File *file, unsigned int size)
 {
-  data = file->readBlock(size - 24);
+  data.clear();
+  if (size > 24 && size <= file->length())
+    data = file->readBlock(size - 24);
+  else
+    data = ByteVector::null;
 }
 
 ByteVector ASF::File::BaseObject::render(ASF::File * /*file*/)
index 46da1430402240eb749055837ba3ce64fa2ac5fa..0f0c21a4dc77f917f9d5cd10657fcb80c9f05ffe 100644 (file)
@@ -149,6 +149,9 @@ namespace TagLib {
      * \warning This pointer will become invalid when this FileRef and all
      * copies pass out of scope.
      *
+     * \warning Do not cast it to any subclasses of \class Tag.
+     * Use tag returning methods of appropriate subclasses of \class File instead.
+     *
      * \see File::tag()
      */
     Tag *tag() const;
index a45c446ed6b5eb76323d13b26199bd06b716a854..693d043f1e89d8e422251738571228797d723281 100644 (file)
@@ -37,6 +37,9 @@
  * \relates TagLib::String
  *
  * Converts a QString to a TagLib::String without a requirement to link to Qt.
+ *
+ * \note consider conversion via usual char-by-char for loop to avoid UTF16->UTF8->UTF16
+ * conversion happening in the background
  */
 #define QStringToTString(s) TagLib::String(s.utf8().data(), TagLib::String::UTF8)
 
  * \relates TagLib::String
  *
  * Converts a TagLib::String to a QString without a requirement to link to Qt.
+ *
+ * \note consider conversion via usual char-by-char for loop to avoid UTF16->UTF8->UTF16
+ * conversion happening in the background
+ *
  */
 #define TStringToQString(s) QString::fromUtf8(s.toCString(true))