From f1010eb8adb396bdb5d141461d699c4bd611a234 Mon Sep 17 00:00:00 2001 From: Steven Moreland Date: Thu, 10 Mar 2022 23:33:15 +0000 Subject: [PATCH] ParcelableHolder: assert stability on read The interface a ParcelableHolder is in determines its stability, and it shouldn't change based on what is sent. Bug: 215458170 Test: aidl_integration_test Change-Id: I40239e14e59b3998ac19d140453eb29a298cdb76 --- core/java/android/os/ParcelableHolder.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/java/android/os/ParcelableHolder.java b/core/java/android/os/ParcelableHolder.java index 368ee2d91172e..a739ba3dd438e 100644 --- a/core/java/android/os/ParcelableHolder.java +++ b/core/java/android/os/ParcelableHolder.java @@ -179,7 +179,11 @@ public final class ParcelableHolder implements Parcelable { * Read ParcelableHolder from a parcel. */ public void readFromParcel(@NonNull Parcel parcel) { - this.mStability = parcel.readInt(); + int wireStability = parcel.readInt(); + if (this.mStability != wireStability) { + throw new IllegalArgumentException("Expected stability " + this.mStability + + " but got " + wireStability); + } mParcelable = null;