diff options
Diffstat (limited to 'src/libraries/qmfclient')
-rw-r--r-- | src/libraries/qmfclient/qmailmessage.cpp | 18 |
1 files changed, 14 insertions, 4 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; |