35 lines
1.8 KiB
Diff
35 lines
1.8 KiB
Diff
From a1a56edccd2943e6f81465b3dfa6c703726fb0fa Mon Sep 17 00:00:00 2001
|
|
From: Matthieu Gallien <matthieu.gallien@nextcloud.com>
|
|
Date: Fri, 6 Sep 2024 16:02:38 +0200
|
|
Subject: [PATCH] add missing exception handling
|
|
|
|
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
|
|
---
|
|
src/libsync/filesystem.cpp | 14 +++++++++-----
|
|
1 file changed, 9 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/src/libsync/filesystem.cpp b/src/libsync/filesystem.cpp
|
|
index 0eb66c4f29fa..9df128682f86 100644
|
|
--- a/src/libsync/filesystem.cpp
|
|
+++ b/src/libsync/filesystem.cpp
|
|
@@ -484,11 +484,15 @@ bool FileSystem::isFolderReadOnly(const std::filesystem::path &path) noexcept
|
|
FileSystem::FilePermissionsRestore::FilePermissionsRestore(const QString &path, FolderPermissions temporaryPermissions)
|
|
: _path(path)
|
|
{
|
|
- const auto stdStrPath = _path.toStdWString();
|
|
- _initialPermissions = FileSystem::isFolderReadOnly(stdStrPath) ? OCC::FileSystem::FolderPermissions::ReadOnly : OCC::FileSystem::FolderPermissions::ReadWrite;
|
|
- if (_initialPermissions != temporaryPermissions) {
|
|
- _rollbackNeeded = true;
|
|
- FileSystem::setFolderPermissions(_path, temporaryPermissions);
|
|
+ try {
|
|
+ const auto stdStrPath = _path.toStdWString();
|
|
+ _initialPermissions = FileSystem::isFolderReadOnly(stdStrPath) ? OCC::FileSystem::FolderPermissions::ReadOnly : OCC::FileSystem::FolderPermissions::ReadWrite;
|
|
+ if (_initialPermissions != temporaryPermissions) {
|
|
+ _rollbackNeeded = true;
|
|
+ FileSystem::setFolderPermissions(_path, temporaryPermissions);
|
|
+ }
|
|
+ } catch (const std::filesystem::filesystem_error &e) {
|
|
+ qCWarning(lcFileSystem()) << "exception when modifying folder permissions" << e.what() << e.path1().c_str() << e.path2().c_str();
|
|
}
|
|
}
|
|
|