Skip to content

Commit 7b7b07d

Browse files
authored
Merge pull request #14420 from iterate-ch/bugfix/MD-18808-validation
Review target validation.
2 parents f6f60a6 + bf84725 commit 7b7b07d

File tree

5 files changed

+10
-7
lines changed

5 files changed

+10
-7
lines changed

azure/src/main/java/ch/cyberduck/core/azure/AzureMoveFeature.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public AzureMoveFeature(final AzureSession session, final OperationContext conte
5151

5252
@Override
5353
public boolean isSupported(final Path source, final Path target) {
54-
return !containerService.isContainer(source);
54+
return !containerService.isContainer(source) && !containerService.isContainer(target);
5555
}
5656

5757
@Override

backblaze/src/main/java/ch/cyberduck/core/b2/B2CopyFeature.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
public class B2CopyFeature implements Copy {
3434

3535
private final PathContainerService containerService
36-
= new B2PathContainerService();
36+
= new B2PathContainerService();
3737

3838
private final B2Session session;
3939
private final B2VersionIdProvider fileid;
@@ -47,8 +47,8 @@ public B2CopyFeature(final B2Session session, final B2VersionIdProvider fileid)
4747
public Path copy(final Path source, final Path target, final TransferStatus status, final ConnectionCallback callback, final StreamListener listener) throws BackgroundException {
4848
try {
4949
final B2FileResponse response = session.getClient().copyFile(fileid.getVersionId(source),
50-
fileid.getVersionId(containerService.getContainer(target)),
51-
containerService.getKey(target));
50+
fileid.getVersionId(containerService.getContainer(target)),
51+
containerService.getKey(target));
5252
listener.sent(status.getLength());
5353
fileid.cache(target, response.getFileId());
5454
return target.withAttributes(new B2AttributesFinderFeature(session, fileid).toAttributes(response));
@@ -66,6 +66,9 @@ public boolean isSupported(final Path source, final Path target) {
6666
if(source.getType().contains(Path.Type.upload)) {
6767
return false;
6868
}
69+
if(containerService.isContainer(source) || containerService.isContainer(target)) {
70+
return false;
71+
}
6972
return new SimplePathPredicate(containerService.getContainer(source)).test(containerService.getContainer(target));
7073
}
7174
}

googlestorage/src/main/java/ch/cyberduck/core/googlestorage/GoogleStorageMoveFeature.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ public Path move(final Path source, final Path target, final TransferStatus stat
4545

4646
@Override
4747
public boolean isSupported(final Path source, final Path target) {
48-
return !containerService.isContainer(source);
48+
return !containerService.isContainer(source) && !containerService.isContainer(target);
4949
}
5050
}

openstack/src/main/java/ch/cyberduck/core/openstack/SwiftMoveFeature.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,6 @@ public Path move(final Path file, final Path renamed, final TransferStatus statu
6565

6666
@Override
6767
public boolean isSupported(final Path source, final Path target) {
68-
return !containerService.isContainer(source);
68+
return !containerService.isContainer(source) && !containerService.isContainer(target);
6969
}
7070
}

s3/src/main/java/ch/cyberduck/core/s3/S3MoveFeature.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,6 @@ public Path move(final Path source, final Path renamed, final TransferStatus sta
105105

106106
@Override
107107
public boolean isSupported(final Path source, final Path target) {
108-
return !containerService.isContainer(source);
108+
return !containerService.isContainer(source) && !containerService.isContainer(target);
109109
}
110110
}

0 commit comments

Comments
 (0)