summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/libraries/qmfclient/qmailmessage.cpp10
-rw-r--r--tests/tst_qmailmessageheader/tst_qmailmessageheader.cpp8
2 files changed, 13 insertions, 5 deletions
diff --git a/src/libraries/qmfclient/qmailmessage.cpp b/src/libraries/qmfclient/qmailmessage.cpp
index a04abc67..b6f16ed2 100644
--- a/src/libraries/qmfclient/qmailmessage.cpp
+++ b/src/libraries/qmfclient/qmailmessage.cpp
@@ -2569,13 +2569,13 @@ QByteArray QMailMessageContentType::type() const
*/
void QMailMessageContentType::setType(const QByteArray& type)
{
- if (type.isEmpty())
- {
+ if (type.isEmpty()) {
// Note - if there is a sub-type, setting type to null will destroy it
setContent(type);
- }
- else
- {
+ } else if (type.contains(';') || type.contains('/')) {
+ qWarning() << Q_FUNC_INFO << "wrong usage of setType(), consider using setSubType() or setParameter()" << type;
+
+ } else {
QByteArray content(type);
QByteArray secondaryType(subType());
diff --git a/tests/tst_qmailmessageheader/tst_qmailmessageheader.cpp b/tests/tst_qmailmessageheader/tst_qmailmessageheader.cpp
index 92c724cc..34d8ae63 100644
--- a/tests/tst_qmailmessageheader/tst_qmailmessageheader.cpp
+++ b/tests/tst_qmailmessageheader/tst_qmailmessageheader.cpp
@@ -1322,6 +1322,14 @@ void tst_QMailMessageContentType::setType()
QCOMPARE( type2.type(), QByteArray() );
QCOMPARE( type2.subType(), QByteArray() );
QCOMPARE( type2.toString(), QByteArray("Content-Type:; charset=us-ascii") );
+
+ // Illegal arguments to setType()
+ QMailMessageContentType type3("image/jpeg");
+ // Set the type and charset
+ type3.setType("text/plain; charset=UTF-8");
+ QCOMPARE( type3.type(), QByteArray("image") );
+ QCOMPARE( type3.subType(), QByteArray("jpeg") );
+ QVERIFY( type3.charset().isEmpty() );
}
void tst_QMailMessageContentType::subType()