From a60571b3700e80f44705ebc4bab9628cf852891c Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Mon, 23 Mar 2015 16:03:57 +0100 Subject: 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 Reviewed-by: Thiago Macieira Reviewed-by: Olivier Goffart (Woboq GmbH) --- tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'tests') diff --git a/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp b/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp index 2c86f0f19c..5796636b92 100644 --- a/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp +++ b/tests/auto/corelib/io/qsavefile/tst_qsavefile.cpp @@ -119,6 +119,14 @@ void tst_QSaveFile::transactionalWrite() QFile reader(targetFile); QVERIFY(reader.open(QIODevice::ReadOnly)); QCOMPARE(QString::fromLatin1(reader.readAll()), QString::fromLatin1("Hello")); + + // check that permissions are the same as for QFile + const QString otherFile = dir.path() + QString::fromLatin1("/otherfile"); + QFile::remove(otherFile); + QFile other(otherFile); + other.open(QIODevice::WriteOnly); + other.close(); + QCOMPARE(QFile::permissions(targetFile), QFile::permissions(otherFile)); } void tst_QSaveFile::saveTwice() -- cgit v1.2.3