summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichał Łoś <michal.los@siili.com>2024-11-05 13:54:42 +0100
committerMichał Łoś <michal.los@siili.com>2024-11-05 19:53:02 +0100
commit2cf12a6baefaed1e1a3ec41a3bafa3865915daef (patch)
tree70a1e31456088e9ef52457bc7876cae7cf50a6e0 /src
parent75617efe238bb20e9a0e1d12a1a8bf5d6f6819e1 (diff)
Fix directory permissions not set correctly on VxWorks
In commit e275db9d885ccccc3def4d52c2dae2f8c062df1a, changes were made to handling directory creation in qfilesystem_unix.cpp. These changes missed VxWorks-specific case where its system `mkdir` function treats permissions of `000` as `default permissions`. This is causing failure of `tst_QDir::mkdirWithPermissions(0000)` test. To fix this, use `forceRequestedPermissionsOnVxWorks` function for VxWorks in `QFileSystemEngine::mkdir`. Fixes: QTBUG-130737 Task-number: QTBUG-115777 Change-Id: I16fc36448693050c7c92096d804a1caeb7e65115 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/io/qfilesystemengine_unix.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp
index 81e36d43889..bd63a6d65ea 100644
--- a/src/corelib/io/qfilesystemengine_unix.cpp
+++ b/src/corelib/io/qfilesystemengine_unix.cpp
@@ -1193,7 +1193,12 @@ bool QFileSystemEngine::mkdir(const QFileSystemEntry &entry,
Q_CHECK_FILE_NAME(path, false);
mode_t mode = permissions ? QtPrivate::toMode_t(*permissions) : 0777;
- return QT_MKDIR(removeTrailingSlashes(path), mode) == 0;
+ auto result = QT_MKDIR(removeTrailingSlashes(path), mode) == 0;
+#if defined(Q_OS_VXWORKS)
+ if (result)
+ forceRequestedPermissionsOnVxWorks(path, mode);
+#endif
+ return result;
}
bool QFileSystemEngine::rmdir(const QFileSystemEntry &entry)