From b9be035c6268ed5359213de8baacbd5e9f4c5f37 Mon Sep 17 00:00:00 2001 From: Ievgenii Meshcheriakov Date: Thu, 21 Oct 2021 14:18:27 +0200 Subject: [PATCH] QTemporaryDir: Set directory permissions at the time of creation Use new QDir::mkdir() method to set directory permissions at the time of its creation on systems that support this feature. This removes the time window when the created directory is potentially accessible to everybody. Task-number: QTBUG-79750 Change-Id: I82afee7f0708bfdcc9b3b3978af9a2aef1b8672d Reviewed-by: Thiago Macieira --- src/corelib/io/qtemporarydir.cpp | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/corelib/io/qtemporarydir.cpp b/src/corelib/io/qtemporarydir.cpp index ed52472ab3b..db352567040 100644 --- a/src/corelib/io/qtemporarydir.cpp +++ b/src/corelib/io/qtemporarydir.cpp @@ -101,17 +101,9 @@ void QTemporaryDirPrivate::create(const QString &templateName) for (int i = 0; i < 256; ++i) { tfn.generateNext(); QFileSystemEntry fileSystemEntry(tfn.path, QFileSystemEntry::FromNativePath()); - if (QFileSystemEngine::createDirectory(fileSystemEntry, false)) { - QSystemError error; - QFileSystemEngine::setPermissions(fileSystemEntry, - QFile::ReadOwner | - QFile::WriteOwner | - QFile::ExeOwner, error); - if (error.error() != 0) { - if (!QFileSystemEngine::removeDirectory(fileSystemEntry, false)) - qWarning() << "Unable to remove unused directory" << templateName; - continue; - } + if (QFileSystemEngine::createDirectory(fileSystemEntry, false, + QFile::ReadOwner | QFile::WriteOwner + | QFile::ExeOwner)) { success = true; pathOrError = fileSystemEntry.filePath(); return;