Fix information disclosure in mediadrmserver Test:poc provided in bug bug:62872384 Change-Id: I3d104a2a64a0cb81e9fd5b04c4def1fbee64da2d (cherry picked from commit b41a527176b659c5ddfc734838df7607a6af80c9)
diff --git a/media/libmedia/IDrm.cpp b/media/libmedia/IDrm.cpp index 51a1130..393286d 100644 --- a/media/libmedia/IDrm.cpp +++ b/media/libmedia/IDrm.cpp
@@ -559,8 +559,13 @@ void BnDrm::readVector(const Parcel &data, Vector<uint8_t> &vector) const { uint32_t size = data.readInt32(); - vector.insertAt((size_t)0, size); - data.read(vector.editArray(), size); + if (vector.insertAt((size_t)0, size) < 0) { + vector.clear(); + } + if (data.read(vector.editArray(), size) != NO_ERROR) { + vector.clear(); + android_errorWriteWithInfoLog(0x534e4554, "62872384", -1, NULL, 0); + } } void BnDrm::writeVector(Parcel *reply, Vector<uint8_t> const &vector) const {