summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2021-10-21 14:18:27 +0200
committerIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2021-11-26 03:39:33 +0100
commitb9be035c6268ed5359213de8baacbd5e9f4c5f37 (patch)
treebb62bca2a5d1bc0cc52b03148fc33c1870694057 /src
parent174af05400f6344a11f4aa2228244c954cbbca97 (diff)
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 <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/io/qtemporarydir.cpp14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/corelib/io/qtemporarydir.cpp b/src/corelib/io/qtemporarydir.cpp
index ed52472ab3..db35256704 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;