From 28217b2de398f77a8d887e18ceb2d9bb57cfcfae Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 1 Feb 2023 13:44:57 +0100 Subject: [PATCH] only perform mountpoint move and cleanup, if mountpoint is not a drive letter --- src/main/java/org/cryptomator/common/mount/Mounter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/cryptomator/common/mount/Mounter.java b/src/main/java/org/cryptomator/common/mount/Mounter.java index 2c75d3f89..97fc93f08 100644 --- a/src/main/java/org/cryptomator/common/mount/Mounter.java +++ b/src/main/java/org/cryptomator/common/mount/Mounter.java @@ -81,6 +81,7 @@ public class Mounter { var canMountToDriveLetter = service.hasCapability(MOUNT_AS_DRIVE_LETTER); var canMountToParent = service.hasCapability(MOUNT_WITHIN_EXISTING_PARENT); var canMountToDir = service.hasCapability(MOUNT_TO_EXISTING_DIR); + var mpIsDriveLetter = userChosenMountPoint.toString().matches("[A-Z]:\\\\"); if (userChosenMountPoint == null) { if (service.hasCapability(MOUNT_TO_SYSTEM_CHOSEN_PATH)) { @@ -96,7 +97,7 @@ public class Mounter { builder.setMountpoint(mountPoint); } } else { - if (canMountToParent && !canMountToDir) { + if (!mpIsDriveLetter && canMountToParent && !canMountToDir) { MountWithinParentUtil.prepareParentNoMountPoint(userChosenMountPoint); cleanup = () -> { MountWithinParentUtil.cleanup(userChosenMountPoint); @@ -105,7 +106,6 @@ public class Mounter { try { builder.setMountpoint(userChosenMountPoint); } catch (IllegalArgumentException e) { - var mpIsDriveLetter = userChosenMountPoint.toString().matches("[A-Z]:\\\\"); var configNotSupported = (!canMountToDriveLetter && mpIsDriveLetter) || (!canMountToDir && !mpIsDriveLetter) || (!canMountToParent && !mpIsDriveLetter); if (configNotSupported) { throw new MountPointNotSupportedException(e.getMessage());