summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2018-03-09 20:06:24 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2018-03-09 20:06:24 +0000
commit9b8008e9e8301b1091f2fd331ad5a35e8bbba603 (patch)
tree5e26750371f60657c5f5d86c7485bb20d1168bce
parentcb114c54a4c2339433d80fc13e7403ec8ddf6e17 (diff)
parent9f292ce7f241133c6411a89b5a7d97e93dc4b85d (diff)
Merge "PackageManager: Avoid null access"
-rw-r--r--services/core/java/com/android/server/pm/PackageManagerService.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index d1abd6366776..a54cf1a39f97 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -3375,6 +3375,13 @@ public class PackageManagerService extends IPackageManager.Stub
// "/data/system/package_cache/1"
File cacheDir = FileUtils.createDir(cacheBaseDir, PACKAGE_PARSER_CACHE_VERSION);
+ if (cacheDir == null) {
+ // Something went wrong. Attempt to delete everything and return.
+ Slog.wtf(TAG, "Cache directory cannot be created - wiping base dir " + cacheBaseDir);
+ FileUtils.deleteContentsAndDir(cacheBaseDir);
+ return null;
+ }
+
// The following is a workaround to aid development on non-numbered userdebug
// builds or cases where "adb sync" is used on userdebug builds. If we detect that
// the system partition is newer.