Merge "MountService: Fix bug which would allow apps to try to rename a container whos dst is mounted"

This commit is contained in:
San Mehat
2010-02-24 09:52:55 -08:00
committed by Android (Google) Code Review
2 changed files with 10 additions and 3 deletions

View File

@@ -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;
}
}

View File

@@ -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"));