am d5a354c6: am d06f6b00: am 67903293: Fix "Binder: Make sure binder objects do not overlap" to work old binder kernel interface

* commit 'd5a354c6b7f2ae0b93e018f3024a2fca5f6543a1':
  Fix "Binder: Make sure binder objects do not overlap" to work old binder kernel interface
This commit is contained in:
Arve Hjønnevåg 2014-02-20 00:52:13 +00:00 committed by Android Git Automerger
commit 9b5c3b9132

View File

@ -1340,7 +1340,7 @@ size_t Parcel::ipcObjectsCount() const
void Parcel::ipcSetDataReference(const uint8_t* data, size_t dataSize, void Parcel::ipcSetDataReference(const uint8_t* data, size_t dataSize,
const binder_size_t* objects, size_t objectsCount, release_func relFunc, void* relCookie) const binder_size_t* objects, size_t objectsCount, release_func relFunc, void* relCookie)
{ {
binder_size_t minOffset = 0; size_t minOffset = 0;
freeDataNoInit(); freeDataNoInit();
mError = NO_ERROR; mError = NO_ERROR;
mData = const_cast<uint8_t*>(data); mData = const_cast<uint8_t*>(data);
@ -1354,10 +1354,10 @@ void Parcel::ipcSetDataReference(const uint8_t* data, size_t dataSize,
mOwner = relFunc; mOwner = relFunc;
mOwnerCookie = relCookie; mOwnerCookie = relCookie;
for (size_t i = 0; i < mObjectsSize; i++) { for (size_t i = 0; i < mObjectsSize; i++) {
binder_size_t offset = mObjects[i]; size_t offset = mObjects[i];
if (offset < minOffset) { if (offset < minOffset) {
ALOGE("%s: bad object offset %"PRIu64" < %"PRIu64"\n", ALOGE("%s: bad object offset %zu < %zu\n",
__func__, (uint64_t)offset, (uint64_t)minOffset); __func__, offset, minOffset);
mObjectsSize = 0; mObjectsSize = 0;
break; break;
} }