summaryrefslogtreecommitdiffstats
path: root/src/corelib/io
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/corelib/io
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/corelib/io')
-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;