diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2022-09-06 10:23:36 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2022-09-16 08:37:49 -0700 |
commit | 4b997d1851bc62b9a1eb761f08d3b22c85bb0b51 (patch) | |
tree | 015a3e7518f1189d1d9487e767ce51c5364a2ee7 /src/corelib/io/qfsfileengine_win.cpp | |
parent | 68f641095c5403925e49954aea0e65c4574121e0 (diff) |
QFileDevice: clear cached permissions on setPermission()
In theory, if we succeed, the permissions should be what we set, but
let's not make that assumption. And if we failed, it might be because
the file disappeared or something else, so re-stat()ing the file is a
good idea.
Pick-to: 6.4
Fixes: QTBUG-7211
Change-Id: If5d5ef6220874ae8858efffd171255506b7bbee0
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/corelib/io/qfsfileengine_win.cpp')
-rw-r--r-- | src/corelib/io/qfsfileengine_win.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index ae59cf9e55..1030c55937 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -655,6 +655,10 @@ bool QFSFileEngine::setPermissions(uint perms) { Q_D(QFSFileEngine); QSystemError error; + + // clear cached state (if any) + d->metaData.clearFlags(QFileSystemMetaData::Permissions); + bool ret = QFileSystemEngine::setPermissions(d->fileEntry, QFile::Permissions(perms), error); if (!ret) setError(QFile::PermissionsError, error.toString()); |