diff options
| author | MattV <qt-info@nokia.com> | 2009-03-16 15:45:50 +1000 |
|---|---|---|
| committer | MattV <qt-info@nokia.com> | 2009-03-16 15:45:50 +1000 |
| commit | 03fcbe2efaf522be307e58730d462dacdd1cdaa2 (patch) | |
| tree | c1e9686be0b2b03556cf76a64ca93ce9bd01551d /src/plugins/messageservices/imap/imapstructure.cpp | |
| parent | 05689c0617b38d9a7babf509e440559133b90871 (diff) | |
Ensure multi-part boundaries are correctly parsed.
Diffstat (limited to 'src/plugins/messageservices/imap/imapstructure.cpp')
| -rw-r--r-- | src/plugins/messageservices/imap/imapstructure.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/plugins/messageservices/imap/imapstructure.cpp b/src/plugins/messageservices/imap/imapstructure.cpp index 280bcb04..740635d0 100644 --- a/src/plugins/messageservices/imap/imapstructure.cpp +++ b/src/plugins/messageservices/imap/imapstructure.cpp @@ -271,9 +271,8 @@ void setBodyFromDescription(const QStringList &details, QMailMessagePartContaine // [2]: parameter list const QStringList parameters(decomposeElements(details.at(2))); QStringList::const_iterator it = parameters.begin(), end = parameters.end(); - for ( ; (it != end) && (it + 1 != end); ++it) { + for ( ; (it != end) && ((it + 1) != end); it += 2) { type.setParameter((*it).toAscii(), (*(it + 1)).toAscii()); - ++it; } // [5]: content-encoding @@ -356,12 +355,9 @@ void setMultipartFromDescription(const QStringList &structure, QMailMessagePartC if (details.count() > 1) { const QStringList parameters(decomposeElements(details.at(1))); QStringList::const_iterator it = parameters.begin(), end = parameters.end(); - for ( ; it != end; ++it) { - if ((it + 1) != end) { - if ((*it).trimmed().toUpper() == "BOUNDARY") { - container->setBoundary((*(it + 1)).toAscii()); - } - ++it; + for ( ; (it != end) && ((it + 1) != end); it += 2) { + if ((*it).trimmed().toUpper() == "BOUNDARY") { + container->setBoundary((*(it + 1)).toAscii()); } } } |
