diff options
| -rw-r--r-- | include/binder/Parcel.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/include/binder/Parcel.h b/include/binder/Parcel.h index 1c355c4689..2490b82bb2 100644 --- a/include/binder/Parcel.h +++ b/include/binder/Parcel.h @@ -589,8 +589,16 @@ status_t Parcel::unsafeReadTypedVector( return UNEXPECTED_NULL; } + if (val->max_size() < size) { + return NO_MEMORY; + } + val->resize(size); + if (val->size() < size) { + return NO_MEMORY; + } + for (auto& v: *val) { status = (this->*read_func)(&v); |