From 4b799bc13c060b971dee7c799a02904be4181e92 Mon Sep 17 00:00:00 2001 From: Jeongsik Mun Date: Sat, 14 Nov 2020 13:12:10 +0900 Subject: [PATCH] Add missing synchronized block for PackageUsage mPackageUsage should be locked by mLock. Bug: 171863889 Test: compile & verify basic functions working Change-Id: Ic86f54fb0a7a447112936780412999897059e0fd --- .../com/android/server/pm/PackageManagerService.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 85659edd13214..7c8af5cc4e74f 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -1738,6 +1738,7 @@ public class PackageManagerService extends IPackageManager.Stub final @Nullable String mOverlayConfigSignaturePackage; final @Nullable String mRecentsPackage; + @GuardedBy("mLock") private final PackageUsage mPackageUsage = new PackageUsage(); private final CompilerStats mCompilerStats = new CompilerStats(); @@ -10630,13 +10631,14 @@ public class PackageManagerService extends IPackageManager.Stub } public void shutdown() { - mPackageUsage.writeNow(mSettings.mPackages); mCompilerStats.writeNow(); mDexManager.writePackageDexUsageNow(); PackageWatchdog.getInstance(mContext).writeNow(); - // This is the last chance to write out pending restriction settings synchronized (mLock) { + mPackageUsage.writeNow(mSettings.mPackages); + + // This is the last chance to write out pending restriction settings if (mHandler.hasMessages(WRITE_PACKAGE_RESTRICTIONS)) { mHandler.removeMessages(WRITE_PACKAGE_RESTRICTIONS); for (int userId : mDirtyUsers) { @@ -26032,7 +26034,9 @@ public class PackageManagerService extends IPackageManager.Stub } boolean isHistoricalPackageUsageAvailable() { - return mPackageUsage.isHistoricalPackageUsageAvailable(); + synchronized (mLock) { + return mPackageUsage.isHistoricalPackageUsageAvailable(); + } } /**