summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libraries/qmfclient/qmailmessage.cpp18
-rw-r--r--src/plugins/messageservices/imap/imapstructure.cpp7
2 files changed, 20 insertions, 5 deletions
diff --git a/src/libraries/qmfclient/qmailmessage.cpp b/src/libraries/qmfclient/qmailmessage.cpp
index c7c075b6..da8b74b7 100644
--- a/src/libraries/qmfclient/qmailmessage.cpp
+++ b/src/libraries/qmfclient/qmailmessage.cpp
@@ -3942,8 +3942,13 @@ const QMailMessagePart& QMailMessagePartContainerPrivate::partAt(const QMailMess
const QList<QMailMessagePart>* partList = &_messageParts;
foreach (uint index, location.d->_indices) {
- part = &(partList->at(index - 1));
- partList = &(part->impl<const QMailMessagePartContainerPrivate>()->_messageParts);
+ if (index >= 0 && index <= partList->size()) {
+ part = &(partList->at(index - 1));
+ partList = &(part->impl<const QMailMessagePartContainerPrivate>()->_messageParts);
+ } else {
+ qMailLog(Messaging) << Q_FUNC_INFO << "Invalid index, container does not have a part at " << index;
+ Q_ASSERT(false);
+ }
}
Q_ASSERT(part);
@@ -3956,8 +3961,13 @@ QMailMessagePart& QMailMessagePartContainerPrivate::partAt(const QMailMessagePar
QList<QMailMessagePart>* partList = &_messageParts;
foreach (uint index, location.d->_indices) {
- part = &((*partList)[index - 1]);
- partList = &(part->impl<QMailMessagePartContainerPrivate>()->_messageParts);
+ if (index >= 0 && index <= partList->size()) {
+ part = &((*partList)[index - 1]);
+ partList = &(part->impl<QMailMessagePartContainerPrivate>()->_messageParts);
+ } else {
+ qMailLog(Messaging) << Q_FUNC_INFO << "Invalid index, container does not have a part at " << index;
+ Q_ASSERT(false);
+ }
}
return *part;
diff --git a/src/plugins/messageservices/imap/imapstructure.cpp b/src/plugins/messageservices/imap/imapstructure.cpp
index a634d9ef..a962d089 100644
--- a/src/plugins/messageservices/imap/imapstructure.cpp
+++ b/src/plugins/messageservices/imap/imapstructure.cpp
@@ -427,7 +427,12 @@ void setMultipartFromDescription(const QStringList &structure, QMailMessagePartC
}
for ( ; (it != end) && ((it + 1) != end); it += 2) {
if ((*it).trimmed().toUpper() == "BOUNDARY") {
- container->setBoundary((*(it + 1)).toLatin1());
+ const QString boundary((*(it + 1)));
+ if (boundary.toUpper() == "NIL") {
+ container->setBoundary(QByteArray());
+ } else {
+ container->setBoundary(boundary.toLatin1());
+ }
}
}
}