Merge "MountService: Fix bug which would allow apps to try to rename a container whos dst is mounted"
This commit is contained in:
@@ -1003,7 +1003,11 @@ class MountService extends IMountService.Stub
|
||||
warnOnNotMounted();
|
||||
|
||||
synchronized (mAsecMountSet) {
|
||||
if (mAsecMountSet.contains(oldId)) {
|
||||
/*
|
||||
* Because a mounted container has active internal state which cannot be
|
||||
* changed while active, we must ensure both ids are not currently mounted.
|
||||
*/
|
||||
if (mAsecMountSet.contains(oldId) || mAsecMountSet.contains(newId)) {
|
||||
return StorageResultCode.OperationFailedStorageMounted;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -300,7 +300,7 @@ public class AsecTests extends AndroidTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
public void testRenameMountedContainer() {
|
||||
public void testRenameSrcMountedContainer() {
|
||||
try {
|
||||
Assert.assertEquals(StorageResultCode.OperationSucceeded,
|
||||
createContainer("testRenameContainer.1", 4, "none"));
|
||||
@@ -312,11 +312,14 @@ public class AsecTests extends AndroidTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
public void testRenameToExistingContainer() {
|
||||
public void testRenameDstMountedContainer() {
|
||||
try {
|
||||
Assert.assertEquals(StorageResultCode.OperationSucceeded,
|
||||
createContainer("testRenameContainer.1", 4, "none"));
|
||||
|
||||
Assert.assertEquals(StorageResultCode.OperationSucceeded,
|
||||
unmountContainer("testRenameContainer.1", false));
|
||||
|
||||
Assert.assertEquals(StorageResultCode.OperationSucceeded,
|
||||
createContainer("testRenameContainer.2", 4, "none"));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user