diff options
-rw-r--r-- | Parcel.cpp | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -2123,10 +2123,16 @@ status_t Parcel::continueWrite(size_t desired) } release_object(proc, *flat, this); } - binder_size_t* objects = - (binder_size_t*)realloc(mObjects, objectsSize*sizeof(binder_size_t)); - if (objects) { - mObjects = objects; + + if (objectsSize == 0) { + free(mObjects); + mObjects = nullptr; + } else { + binder_size_t* objects = + (binder_size_t*)realloc(mObjects, objectsSize*sizeof(binder_size_t)); + if (objects) { + mObjects = objects; + } } mObjectsSize = objectsSize; mNextObjectHint = 0; |