From b98ac44e9e42d23b20826eba69ddc767c27be15d Mon Sep 17 00:00:00 2001 From: Elvis Angelaccio Date: Sat, 22 Jun 2024 17:54:07 +0200 Subject: [PATCH] cliinterface: adapt to behavior change in QTemporaryDir Qt 6.7 changed the behavior of QTemporaryDir (see commit 935562a77b in qtbase.git) and now QTemporaryDir::path() returns a relative path rather than an absolute one. We were relying on the old behavior which ensured that the extract temp dir would always auto-delete itself, regardless of the ark CWD. This is no longer working, because now when the temp dir gets deleted, its destructor tries to delete a relative path, but meanwhile ark has already changed the CWD and so that path does not exist. The fix is to create the QTemporaryDir with an absolute path (but still as hidden folder in the CWD), so we get back the old behavior (the returned QTemporaryDir::path() will again be absolute). BUG: 487229 --- kerfuffle/cliinterface.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kerfuffle/cliinterface.cpp b/kerfuffle/cliinterface.cpp index c100d88f..8a317fe5 100644 --- a/kerfuffle/cliinterface.cpp +++ b/kerfuffle/cliinterface.cpp @@ -96,7 +96,7 @@ bool CliInterface::extractFiles(const QList &files, const QStr if (useTmpExtractDir) { // Create an hidden temp folder in the current directory. - m_extractTempDir.reset(new QTemporaryDir(QStringLiteral(".%1-").arg(QCoreApplication::applicationName()))); + m_extractTempDir.reset(new QTemporaryDir(QStringLiteral("%1/.%2-").arg(QDir::currentPath(), QCoreApplication::applicationName()))); qCDebug(ARK) << "Using temporary extraction dir:" << m_extractTempDir->path(); if (!m_extractTempDir->isValid()) { -- 2.45.2