diff options
5 files changed, 9 insertions, 7 deletions
diff --git a/media/java/android/media/MediaMetadata.java b/media/java/android/media/MediaMetadata.java index 722605f5d544..9ebf10f52728 100644 --- a/media/java/android/media/MediaMetadata.java +++ b/media/java/android/media/MediaMetadata.java @@ -365,7 +365,7 @@ public final class MediaMetadata implements Parcelable { } private MediaMetadata(Parcel in) { - mBundle = in.readBundle(); + mBundle = Bundle.setDefusable(in.readBundle(), true); } /** diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index 63a0e87efc59..f51fb6c68cd4 100755 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -811,10 +811,8 @@ public final class ActiveServices { // Hacky kind of thing -- allow system stuff to tell us // what they are, so we can report this elsewhere for // others to know why certain services are running. - try { - clientIntent = service.getParcelableExtra(Intent.EXTRA_CLIENT_INTENT); - } catch (RuntimeException e) { - } + service.setDefusable(true); + clientIntent = service.getParcelableExtra(Intent.EXTRA_CLIENT_INTENT); if (clientIntent != null) { clientLabel = service.getIntExtra(Intent.EXTRA_CLIENT_LABEL, 0); if (clientLabel != 0) { diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 5aac43d910f7..a22e0efb70d4 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -6923,6 +6923,7 @@ public final class ActivityManagerService extends ActivityManagerNative intents[i].setDefusable(true); } } + Bundle.setDefusable(bOptions, true); final boolean noCreate = (flags&PendingIntent.FLAG_NO_CREATE) != 0; final boolean cancelCurrent = (flags&PendingIntent.FLAG_CANCEL_CURRENT) != 0; diff --git a/services/core/java/com/android/server/am/PendingIntentRecord.java b/services/core/java/com/android/server/am/PendingIntentRecord.java index 8039072dccda..b8f45bc342a8 100644 --- a/services/core/java/com/android/server/am/PendingIntentRecord.java +++ b/services/core/java/com/android/server/am/PendingIntentRecord.java @@ -208,7 +208,10 @@ final class PendingIntentRecord extends IIntentSender.Stub { String requiredPermission, IBinder resultTo, String resultWho, int requestCode, int flagsMask, int flagsValues, Bundle options, IActivityContainer container) throws TransactionTooLargeException { - synchronized(owner) { + if (intent != null) intent.setDefusable(true); + if (options != null) options.setDefusable(true); + + synchronized (owner) { final ActivityContainer activityContainer = (ActivityContainer)container; if (activityContainer != null && activityContainer.mParentActivity != null && activityContainer.mParentActivity.state diff --git a/telecomm/java/android/telecom/ParcelableConnection.java b/telecomm/java/android/telecom/ParcelableConnection.java index fe0a4d8eef3d..ce51c967e021 100644 --- a/telecomm/java/android/telecom/ParcelableConnection.java +++ b/telecomm/java/android/telecom/ParcelableConnection.java @@ -188,7 +188,7 @@ public final class ParcelableConnection implements Parcelable { DisconnectCause disconnectCause = source.readParcelable(classLoader); List<String> conferenceableConnectionIds = new ArrayList<>(); source.readStringList(conferenceableConnectionIds); - Bundle extras = source.readBundle(classLoader); + Bundle extras = Bundle.setDefusable(source.readBundle(classLoader), true); return new ParcelableConnection( phoneAccount, |