diff options
author | Kai Koehne <kai.koehne@theqtcompany.com> | 2015-03-23 16:03:57 +0100 |
---|---|---|
committer | Kai Koehne <kai.koehne@theqtcompany.com> | 2015-04-08 07:48:17 +0000 |
commit | a60571b3700e80f44705ebc4bab9628cf852891c (patch) | |
tree | cb607c2f2ec71d1d719ac20efdc2270249bb379e /src/corelib/io/qtemporaryfile_p.h | |
parent | a715c6ceb8cd59b44f75a08cd6a7095f2ceac04d (diff) |
QSaveFile: Fix permissions on creation
QSaveFile is intended to be a replacement for QFile, and should use the
same permissions for newly created files. QTemporaryFile however creates
new files with 0600 mask by default.
Fix this by making the mode_t argument QTemporaryFileEngine uses
configurable, and using 0666 for QSaveFile (like we do in QFile).
[ChangeLog][Important behavior changes] Files created by QSaveFile do
now have the same rights as files created by QFile. This also fixes a
regression in QSettings: In the Qt 5.4 series, new files created by
QSettings were only readable by the current user.
Task-number: QTBUG-44086
Change-Id: Ie1cc20e9f25c6e72e1bc9176490c419c27c5fc82
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/corelib/io/qtemporaryfile_p.h')
-rw-r--r-- | src/corelib/io/qtemporaryfile_p.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/corelib/io/qtemporaryfile_p.h b/src/corelib/io/qtemporaryfile_p.h index 2045edff02..475298f264 100644 --- a/src/corelib/io/qtemporaryfile_p.h +++ b/src/corelib/io/qtemporaryfile_p.h @@ -77,8 +77,13 @@ class QTemporaryFileEngine : public QFSFileEngine { Q_DECLARE_PRIVATE(QFSFileEngine) public: - QTemporaryFileEngine(const QString &file, bool fileIsTemplate = true) - : QFSFileEngine(), filePathIsTemplate(fileIsTemplate), + + QTemporaryFileEngine(const QString &file, + quint32 fileMode, + bool fileIsTemplate = true) : + QFSFileEngine(), + fileMode(fileMode), + filePathIsTemplate(fileIsTemplate), filePathWasTemplate(fileIsTemplate) { Q_D(QFSFileEngine); @@ -100,6 +105,7 @@ public: bool renameOverwrite(const QString &newName); bool close(); + quint32 fileMode; bool filePathIsTemplate; bool filePathWasTemplate; }; |