Skip to content

Commit a96fa35

Browse files
krutonAndroid (Google) Code Review
authored andcommitted
Merge "Don't prematurely delete temporary files" into jb-mr1-dev
2 parents 494ac35 + 0b2fa8c commit a96fa35

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

services/java/com/android/server/pm/PackageManagerService.java

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6334,7 +6334,8 @@ public void handleStartCopy() throws RemoteException {
63346334
packageFile = mTempPackage;
63356335

63366336
FileUtils.setPermissions(packageFile.getAbsolutePath(),
6337-
FileUtils.S_IRUSR | FileUtils.S_IWUSR | FileUtils.S_IROTH,
6337+
FileUtils.S_IRUSR | FileUtils.S_IWUSR | FileUtils.S_IRGRP
6338+
| FileUtils.S_IROTH,
63386339
-1, -1);
63396340
} else {
63406341
packageFile = null;
@@ -6515,12 +6516,12 @@ void handleReturnCode() {
65156516
// will succeed.
65166517
if (mArgs != null) {
65176518
processPendingInstall(mArgs, mRet);
6518-
}
65196519

6520-
if (mTempPackage != null) {
6521-
if (!mTempPackage.delete()) {
6522-
Slog.w(TAG, "Couldn't delete temporary file: "
6523-
+ mTempPackage.getAbsolutePath());
6520+
if (mTempPackage != null) {
6521+
if (!mTempPackage.delete()) {
6522+
Slog.w(TAG, "Couldn't delete temporary file: " +
6523+
mTempPackage.getAbsolutePath());
6524+
}
65246525
}
65256526
}
65266527
}
@@ -7942,17 +7943,23 @@ private int packageFlagsToInstallFlags(PackageSetting ps) {
79427943
}
79437944

79447945
private void deleteTempPackageFiles() {
7945-
FilenameFilter filter = new FilenameFilter() {
7946+
final FilenameFilter filter = new FilenameFilter() {
79467947
public boolean accept(File dir, String name) {
79477948
return name.startsWith("vmdl") && name.endsWith(".tmp");
79487949
}
79497950
};
7950-
String tmpFilesList[] = mAppInstallDir.list(filter);
7951-
if(tmpFilesList == null) {
7951+
deleteTempPackageFilesInDirectory(mAppInstallDir, filter);
7952+
deleteTempPackageFilesInDirectory(mDrmAppPrivateInstallDir, filter);
7953+
}
7954+
7955+
private static final void deleteTempPackageFilesInDirectory(File directory,
7956+
FilenameFilter filter) {
7957+
final String[] tmpFilesList = directory.list(filter);
7958+
if (tmpFilesList == null) {
79527959
return;
79537960
}
7954-
for(int i = 0; i < tmpFilesList.length; i++) {
7955-
File tmpFile = new File(mAppInstallDir, tmpFilesList[i]);
7961+
for (int i = 0; i < tmpFilesList.length; i++) {
7962+
final File tmpFile = new File(directory, tmpFilesList[i]);
79567963
tmpFile.delete();
79577964
}
79587965
}

0 commit comments

Comments
 (0)