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