File 0001-Don-t-create-folders-in-tmp.patch of Package messagelib
From 164aeeb10f549270952dc1d9b167bf36a07e9022 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Mon, 23 Feb 2026 23:38:37 +0100
Subject: [PATCH] Don't create folders in tmp
Makes it hard for multiple users to use the same machine
BUGS: 516583
---
messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp | 3 +--
messageviewer/src/messagepartthemes/default/autotests/util.cpp | 2 +-
messageviewer/src/viewer/viewer_p.cpp | 3 +--
mimetreeparser/autotests/data/html-multipart-related.mbox.html | 2 +-
.../data/html-multipart-related.mbox.html.content.0.full | 2 +-
.../data/html-multipart-related.mbox.html.content.1.full | 2 +-
mimetreeparser/src/nodehelper.cpp | 3 +--
7 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp b/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp
index 7eec64abc..b1507ae5f 100644
--- a/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp
+++ b/messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp
@@ -62,8 +62,7 @@ void WebEnginePartHtmlWriter::end()
}
if (data().size() > 1000000) {
// qDebug() << " load big message ";
- QDir().mkdir(QDir::tempPath() + u"/kmail"_s);
- mTempFile = new QTemporaryFile(QDir::tempPath() + QLatin1StringView("/kmail/messageviewer_XXXXXX") + QLatin1StringView(".html"));
+ mTempFile = new QTemporaryFile(QDir::tempPath() + QLatin1StringView("/kmail_messageviewer_XXXXXX.html"));
if (!mTempFile->open()) {
qCWarning(MESSAGEVIEWER_LOG) << "Impossible to open temporary file";
}
diff --git a/messageviewer/src/messagepartthemes/default/autotests/util.cpp b/messageviewer/src/messagepartthemes/default/autotests/util.cpp
index 29293537d..25c863ea3 100644
--- a/messageviewer/src/messagepartthemes/default/autotests/util.cpp
+++ b/messageviewer/src/messagepartthemes/default/autotests/util.cpp
@@ -61,7 +61,7 @@ void Test::compareFile(const QString &outFile, const QString &referenceFile)
content.replace(QRegularExpression(u"\"file:[^\"]*[/(?:%2F)]([^\"/(?:%2F)]*)\""_s), u"\"file:\\1\""_s);
content.replace(QRegularExpression(u"src=\"/[^\"]*/([^\"/(?:%2F)]*)\""_s), u"src=\"file:\\1\""_s);
content.replace(QRegularExpression(u"\"qrc:[^\"]*[/(?:%2F)]([^\"/(?:%2F)]*)\""_s), u"\"file:\\1\""_s);
- content.replace(QRegularExpression(u"(file:///tmp/kmail/messageviewer)(_[^\"]+)(\\.index\\.[^\"]*)"_s), u"\\1\\3"_s);
+ content.replace(QRegularExpression(u"(file:///tmp/kmail_messageviewer)(_[^\"]+)(\\.index\\.[^\"]*)"_s), u"\\1\\3"_s);
content.replace(QLatin1StringView("NBSP_ENTITY_PLACEHOLDER"), QLatin1StringView(" ")); // undo above transformation for xmllint
QVERIFY(f.open(QIODevice::WriteOnly | QIODevice::Truncate));
f.write(content.toUtf8());
diff --git a/messageviewer/src/viewer/viewer_p.cpp b/messageviewer/src/viewer/viewer_p.cpp
index ba616a79c..b644fd526 100644
--- a/messageviewer/src/viewer/viewer_p.cpp
+++ b/messageviewer/src/viewer/viewer_p.cpp
@@ -638,8 +638,7 @@ void ViewerPrivate::attachmentOpenWith(const KMime::Content *node, const KServic
QString name = mNodeHelper->writeNodeToTempFile(node);
// Make sure that it will not deleted when we switch from message.
- QDir().mkdir(QDir::tempPath() + u"/kmail"_s);
- auto tmpDir = new QTemporaryDir(QDir::tempPath() + QLatin1StringView("/kmail/messageviewer_attachment_XXXXXX"));
+ auto tmpDir = new QTemporaryDir(QDir::tempPath() + QLatin1StringView("/kmail_messageviewer_attachment_XXXXXX"));
if (tmpDir->isValid()) {
tmpDir->setAutoRemove(false);
const QString path = tmpDir->path();
diff --git a/mimetreeparser/autotests/data/html-multipart-related.mbox.html b/mimetreeparser/autotests/data/html-multipart-related.mbox.html
index 9cb2c62a8..879efd2c2 100644
--- a/mimetreeparser/autotests/data/html-multipart-related.mbox.html
+++ b/mimetreeparser/autotests/data/html-multipart-related.mbox.html
@@ -11,7 +11,7 @@
<p> some random text :) <img src="cid:uniqueid"/> </p>
</div>
</div>
- <!-- embedPart(contentID=uniqueid, url=file:///tmp/kmail/messageviewer.index.2/image.png) -->
+ <!-- embedPart(contentID=uniqueid, url=file:///tmp/kmail_messageviewer.index.2/image.png) -->
</div>
</div>
</body>
diff --git a/mimetreeparser/autotests/data/html-multipart-related.mbox.html.content.0.full b/mimetreeparser/autotests/data/html-multipart-related.mbox.html.content.0.full
index 9c894039d..320888f8d 100644
--- a/mimetreeparser/autotests/data/html-multipart-related.mbox.html.content.0.full
+++ b/mimetreeparser/autotests/data/html-multipart-related.mbox.html.content.0.full
@@ -8,6 +8,6 @@
<p> some random text :) <img src="cid:uniqueid"/> </p>
</div>
</div>
- <!-- embedPart(contentID=uniqueid, url=file:///tmp/kmail/messageviewer.index.2/image.png) -->
+ <!-- embedPart(contentID=uniqueid, url=file:///tmp/kmail_messageviewer.index.2/image.png) -->
</body>
</html>
diff --git a/mimetreeparser/autotests/data/html-multipart-related.mbox.html.content.1.full b/mimetreeparser/autotests/data/html-multipart-related.mbox.html.content.1.full
index a2ab54980..cb798fc42 100644
--- a/mimetreeparser/autotests/data/html-multipart-related.mbox.html.content.1.full
+++ b/mimetreeparser/autotests/data/html-multipart-related.mbox.html.content.1.full
@@ -2,6 +2,6 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
- <!-- embedPart(contentID=uniqueid, url=file:///tmp/kmail/messageviewer.index.2/image.png) -->
+ <!-- embedPart(contentID=uniqueid, url=file:///tmp/kmail_messageviewer.index.2/image.png) -->
</body>
</html>
diff --git a/mimetreeparser/src/nodehelper.cpp b/mimetreeparser/src/nodehelper.cpp
index fd6fc249f..a8d20f9c6 100644
--- a/mimetreeparser/src/nodehelper.cpp
+++ b/mimetreeparser/src/nodehelper.cpp
@@ -259,8 +259,7 @@ QUrl NodeHelper::tempFileUrlFromNode(const KMime::Content *node)
QString NodeHelper::createTempDir(const QString ¶m)
{
- QDir().mkdir(QDir::tempPath() + u"/kmail"_s);
- auto tempFile = new QTemporaryFile(QDir::tempPath() + QLatin1StringView("/kmail/messageviewer_XXXXXX") + QLatin1StringView(".index.") + param);
+ auto tempFile = new QTemporaryFile(QDir::tempPath() + QLatin1StringView("/kmail_messageviewer_XXXXXX.index.") + param);
tempFile->open();
const QString fname = tempFile->fileName();
delete tempFile;
--
2.53.0