kolabformat/kolabobject.cpp mime/mimeutils.cpp

Christian Mollekopf mollekopf at kolabsys.com
Tue Aug 14 14:13:45 CEST 2012


 kolabformat/kolabobject.cpp |    5 +++++
 mime/mimeutils.cpp          |    3 +++
 2 files changed, 8 insertions(+)

New commits:
commit e57c488df7f76fd198ca095cb05563cb53f194c2
Author: Christian Mollekopf <mollekopf at kolabsys.com>
Date:   Tue Aug 14 14:12:36 2012 +0200

    Some sanity checking and debug output for the case we get an empty message.

diff --git a/kolabformat/kolabobject.cpp b/kolabformat/kolabobject.cpp
index 4b835de..ddbb306 100644
--- a/kolabformat/kolabobject.cpp
+++ b/kolabformat/kolabobject.cpp
@@ -333,6 +333,11 @@ ObjectType KolabObjectReader::parseMimeMessage(const KMime::Message::Ptr &msg)
 {
     ErrorHandler::clearErrors();
     d->mObjectType = InvalidObject;
+    if (msg->contents().isEmpty()) {
+        Critical() << "message has no contents (we likely failed to parse it correctly)";
+        printMessageDebugInfo(msg);
+        return InvalidObject;
+    }
     Kolab::ObjectType objectType = InvalidObject;
     if (d->mOverrideObjectType == InvalidObject) {
         KMime::Headers::Base *xKolabHeader = msg->getHeaderByType(X_KOLAB_TYPE_HEADER);
diff --git a/mime/mimeutils.cpp b/mime/mimeutils.cpp
index d00e305..f51e498 100644
--- a/mime/mimeutils.cpp
+++ b/mime/mimeutils.cpp
@@ -34,6 +34,7 @@ KMime::Content* findContentByType(const KMime::Message::Ptr &data, const QByteAr
         Error() << "Empty type";
         return 0;
     }
+    Q_ASSERT(!data->contents().isEmpty());
     Q_FOREACH(KMime::Content *c, data->contents()) {
 //         qDebug() << c->contentType()->mimeType() << type;
         if (c->contentType()->mimeType() ==  type) {
@@ -45,6 +46,7 @@ KMime::Content* findContentByType(const KMime::Message::Ptr &data, const QByteAr
 
 KMime::Content* findContentByName(const KMime::Message::Ptr &data, const QString &name, QByteArray &type)
 {
+    Q_ASSERT(!data->contents().isEmpty());
     Q_FOREACH(KMime::Content *c, data->contents()) {
 //         kDebug() << "searching: " << c->contentType()->name();
         if ( c->contentType()->name() == name ) {
@@ -61,6 +63,7 @@ KMime::Content* findContentById(const KMime::Message::Ptr &data, const QByteArra
         Error() << "looking for empty cid";
         return 0;
     }
+    Q_ASSERT(!data->contents().isEmpty());
     Q_FOREACH(KMime::Content *c, data->contents()) {
 //         kDebug() << "searching: " << c->contentID()->identifier();
         if ( c->contentID()->identifier() == id ) {





More information about the commits mailing list