diff options
author | Wei Jia <wjia@google.com> | 2015-07-20 11:34:22 -0700 |
---|---|---|
committer | Wei Jia <wjia@google.com> | 2015-07-20 11:34:22 -0700 |
commit | 94b0badc025b14141ff234e3e4e2745411742bac (patch) | |
tree | 3108e3c09f78c3c28dd24e2990baf7673cab215f /media | |
parent | f8f669d7a727e4ad5505cd85741f4d50dbaffbf9 (diff) | |
download | frameworks_av-94b0badc025b14141ff234e3e4e2745411742bac.zip frameworks_av-94b0badc025b14141ff234e3e4e2745411742bac.tar.gz frameworks_av-94b0badc025b14141ff234e3e4e2745411742bac.tar.bz2 |
ABuffer: reset members when memory allocation fails.
Bug: 22077698
Change-Id: I2beb724662d041ad2339d0f4c7f983e7ac5e5e6f
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/foundation/ABuffer.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/media/libstagefright/foundation/ABuffer.cpp b/media/libstagefright/foundation/ABuffer.cpp index b214870..a5b81a8 100644 --- a/media/libstagefright/foundation/ABuffer.cpp +++ b/media/libstagefright/foundation/ABuffer.cpp @@ -25,12 +25,17 @@ namespace android { ABuffer::ABuffer(size_t capacity) : mMediaBufferBase(NULL), - mData(malloc(capacity)), - mCapacity(capacity), mRangeOffset(0), - mRangeLength(capacity), mInt32Data(0), mOwnsData(true) { + mData = malloc(capacity); + if (mData == NULL) { + mCapacity = 0; + mRangeLength = 0; + } else { + mCapacity = capacity; + mRangeLength = capacity; + } } ABuffer::ABuffer(void *data, size_t capacity) @@ -47,6 +52,9 @@ ABuffer::ABuffer(void *data, size_t capacity) sp<ABuffer> ABuffer::CreateAsCopy(const void *data, size_t capacity) { sp<ABuffer> res = new ABuffer(capacity); + if (res->base() == NULL) { + return NULL; + } memcpy(res->data(), data, capacity); return res; } |