summaryrefslogtreecommitdiff
path: root/libs/binder/ParcelableHolder.cpp
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2022-03-15 17:24:14 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-03-15 17:24:14 +0000
commitef3ff1fb7c70a65fb119509a6a7e6daa1a726ce2 (patch)
treefc32941a1293ba1eec9d52768d393228f1fdde8a /libs/binder/ParcelableHolder.cpp
parent1fa80dfaa537daf21cfe4b07d81bfa24a0b9fb9d (diff)
parent2d2be5a206b385b9cee44c6bbc3565c74d4dcf0e (diff)
Merge "libbinder*: ParcelableHolder assert stability read" am: 2d2be5a206
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2020840 Change-Id: Ia2f738c9eed0955cb0525aaf2205bbfce12bb52b
Diffstat (limited to 'libs/binder/ParcelableHolder.cpp')
-rw-r--r--libs/binder/ParcelableHolder.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/libs/binder/ParcelableHolder.cpp b/libs/binder/ParcelableHolder.cpp
index 2e86b7415a..3cf94e3047 100644
--- a/libs/binder/ParcelableHolder.cpp
+++ b/libs/binder/ParcelableHolder.cpp
@@ -52,7 +52,10 @@ status_t ParcelableHolder::writeToParcel(Parcel* p) const {
}
status_t ParcelableHolder::readFromParcel(const Parcel* p) {
- this->mStability = static_cast<Stability>(p->readInt32());
+ int32_t wireStability;
+ if (status_t status = p->readInt32(&wireStability); status != OK) return status;
+ if (static_cast<int32_t>(this->mStability) != wireStability) return BAD_VALUE;
+
this->mParcelable = nullptr;
this->mParcelableName = std::nullopt;
int32_t rawDataSize;