diff options
| author | 2012-09-14 11:19:43 -0700 | |
|---|---|---|
| committer | 2012-09-14 11:19:44 -0700 | |
| commit | a96fa35e50788d26fc8ab7667ed5000e7b67b26e (patch) | |
| tree | 0b29742e8509489887a94ba408d2873b2b8f0215 | |
| parent | 494ac35c27a0960f57b00bf8457f1956ecf149a2 (diff) | |
| parent | 0b2fa8ca2238de575fc5cf32f28a92a7d422faef (diff) | |
Merge "Don't prematurely delete temporary files" into jb-mr1-dev
| -rw-r--r-- | services/java/com/android/server/pm/PackageManagerService.java | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/java/com/android/server/pm/PackageManagerService.java index fe5889ded097..e208068ec60e 100644 --- a/services/java/com/android/server/pm/PackageManagerService.java +++ b/services/java/com/android/server/pm/PackageManagerService.java @@ -6334,7 +6334,8 @@ public class PackageManagerService extends IPackageManager.Stub { packageFile = mTempPackage; FileUtils.setPermissions(packageFile.getAbsolutePath(), - FileUtils.S_IRUSR | FileUtils.S_IWUSR | FileUtils.S_IROTH, + FileUtils.S_IRUSR | FileUtils.S_IWUSR | FileUtils.S_IRGRP + | FileUtils.S_IROTH, -1, -1); } else { packageFile = null; @@ -6515,12 +6516,12 @@ public class PackageManagerService extends IPackageManager.Stub { // will succeed. if (mArgs != null) { processPendingInstall(mArgs, mRet); - } - if (mTempPackage != null) { - if (!mTempPackage.delete()) { - Slog.w(TAG, "Couldn't delete temporary file: " - + mTempPackage.getAbsolutePath()); + if (mTempPackage != null) { + if (!mTempPackage.delete()) { + Slog.w(TAG, "Couldn't delete temporary file: " + + mTempPackage.getAbsolutePath()); + } } } } @@ -7942,17 +7943,23 @@ public class PackageManagerService extends IPackageManager.Stub { } private void deleteTempPackageFiles() { - FilenameFilter filter = new FilenameFilter() { + final FilenameFilter filter = new FilenameFilter() { public boolean accept(File dir, String name) { return name.startsWith("vmdl") && name.endsWith(".tmp"); } }; - String tmpFilesList[] = mAppInstallDir.list(filter); - if(tmpFilesList == null) { + deleteTempPackageFilesInDirectory(mAppInstallDir, filter); + deleteTempPackageFilesInDirectory(mDrmAppPrivateInstallDir, filter); + } + + private static final void deleteTempPackageFilesInDirectory(File directory, + FilenameFilter filter) { + final String[] tmpFilesList = directory.list(filter); + if (tmpFilesList == null) { return; } - for(int i = 0; i < tmpFilesList.length; i++) { - File tmpFile = new File(mAppInstallDir, tmpFilesList[i]); + for (int i = 0; i < tmpFilesList.length; i++) { + final File tmpFile = new File(directory, tmpFilesList[i]); tmpFile.delete(); } } |