summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2019-06-06 23:19:33 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-06-06 23:19:33 +0000
commit4f65d3377b9f3b83fa75b94ccc7b459b98376b11 (patch)
treecd802e49ce0369e30cd657607ba5a3acfa426e0c
parentb0406010989bdbb9d7270a55fd64be573e3c7a14 (diff)
parent6af27a83256e676da6f9c02921ef9dfeffc8c52d (diff)
Merge "Free mObjects if no objects left to realloc on resize" into qt-dev
-rw-r--r--libs/binder/Parcel.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp
index 753d5b4698..afa3d33349 100644
--- a/libs/binder/Parcel.cpp
+++ b/libs/binder/Parcel.cpp
@@ -2835,10 +2835,16 @@ status_t Parcel::continueWrite(size_t desired)
}
release_object(proc, *flat, this, &mOpenAshmemSize);
}
- 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;