readCString: no ubsan sub-overflow am: 1086548c6c am: 13788cbc36 am: 1a4c63ee1a Change-Id: Ib3fa336769dbd8a95ced8c2a98de05af815ea452
diff --git a/Parcel.cpp b/Parcel.cpp index 6e9bd1e..096913f 100644 --- a/Parcel.cpp +++ b/Parcel.cpp
@@ -1332,8 +1332,8 @@ const char* Parcel::readCString() const { - const size_t avail = mDataSize-mDataPos; - if (avail > 0) { + if (mDataPos < mDataSize) { + const size_t avail = mDataSize-mDataPos; const char* str = reinterpret_cast<const char*>(mData+mDataPos); // is the string's trailing NUL within the parcel's valid bounds? const char* eos = reinterpret_cast<const char*>(memchr(str, 0, avail));