diff options
| author | 2013-03-09 11:28:54 +0900 | |
|---|---|---|
| committer | 2013-05-28 18:39:02 -0700 | |
| commit | 3f727c0ea3ad1de512c935c6e80423f2115b46c0 (patch) | |
| tree | b774156f1a17616aaddcf182597f7dfbdfeceea9 | |
| parent | 74bd799ec20d2420459fa382533b1cc39ca9a54c (diff) | |
fix mem leak on error handling
Change-Id: I40d8e371c46184aa701fa676246201a9d8f6e27d
| -rw-r--r-- | libs/binder/Parcel.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp index 8f7f7e76d5..c7bdcbca4a 100644 --- a/libs/binder/Parcel.cpp +++ b/libs/binder/Parcel.cpp @@ -1472,6 +1472,8 @@ status_t Parcel::continueWrite(size_t desired) if (objectsSize) { objects = (size_t*)malloc(objectsSize*sizeof(size_t)); if (!objects) { + free(data); + mError = NO_MEMORY; return NO_MEMORY; } @@ -1552,7 +1554,7 @@ status_t Parcel::continueWrite(size_t desired) mError = NO_MEMORY; return NO_MEMORY; } - + if(!(mDataCapacity == 0 && mObjects == NULL && mObjectsCapacity == 0)) { ALOGE("continueWrite: %d/%p/%d/%d", mDataCapacity, mObjects, mObjectsCapacity, desired); |