summaryrefslogtreecommitdiff
path: root/libs/binder/ParcelableHolder.cpp
diff options
context:
space:
mode:
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;