From a1a56edccd2943e6f81465b3dfa6c703726fb0fa Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Fri, 6 Sep 2024 16:02:38 +0200 Subject: [PATCH] add missing exception handling Signed-off-by: Matthieu Gallien --- 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 0eb66c4f29fa2..9df128682f869 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(); } }