diff options
| author | 2018-03-09 20:06:24 +0000 | |
|---|---|---|
| committer | 2018-03-09 20:06:24 +0000 | |
| commit | 9b8008e9e8301b1091f2fd331ad5a35e8bbba603 (patch) | |
| tree | 5e26750371f60657c5f5d86c7485bb20d1168bce | |
| parent | cb114c54a4c2339433d80fc13e7403ec8ddf6e17 (diff) | |
| parent | 9f292ce7f241133c6411a89b5a7d97e93dc4b85d (diff) | |
Merge "PackageManager: Avoid null access"
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 7 |
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. |