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>
This commit is contained in:
parent
174af05400
commit
b9be035c62
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user