From 2387932b74699c4d5baa493271e999e31b09d2b8 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Wed, 30 Mar 2016 16:51:26 -0700 Subject: [PATCH] Fix a deadlock due to wtf in BaseBundle Use Slog.wtf instead of Log.wtf, so that it is asynchronously reported. Mark incoming application restrictions as defusable since they are being unparceled. Bug: 27811728 Change-Id: I166de69a74417e439ec5ef9159fbbfbfe711dde6 --- core/java/android/os/BaseBundle.java | 3 ++- .../core/java/com/android/server/pm/UserManagerService.java | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/android/os/BaseBundle.java b/core/java/android/os/BaseBundle.java index 6e50155313ca0..b6c919e272770 100644 --- a/core/java/android/os/BaseBundle.java +++ b/core/java/android/os/BaseBundle.java @@ -20,6 +20,7 @@ import android.annotation.Nullable; import android.util.ArrayMap; import android.util.Log; import android.util.MathUtils; +import android.util.Slog; import java.io.Serializable; import java.util.ArrayList; @@ -229,7 +230,7 @@ public class BaseBundle { } if (sShouldDefuse && (mFlags & FLAG_DEFUSABLE) == 0) { - Log.wtf(TAG, "Attempting to unparcel a Bundle while in transit; this may " + Slog.wtf(TAG, "Attempting to unparcel a Bundle while in transit; this may " + "clobber all data inside!", new Throwable()); } diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 7f0da1ec669b0..88f4190ad9b7c 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -2281,6 +2281,7 @@ public class UserManagerService extends IUserManager.Stub { if (restrictions == null || restrictions.isEmpty()) { cleanAppRestrictionsForPackage(packageName, userId); } else { + restrictions.setDefusable(true); // Write the restrictions to XML writeApplicationRestrictionsLP(packageName, restrictions, userId); }