diff options
author | Hung Nguyen <hung.nguyen@sonymobile.com> | 2012-06-05 13:19:53 +0200 |
---|---|---|
committer | James Dong <jdong@google.com> | 2013-01-24 15:42:42 -0800 |
commit | bb9c2e1155d0a844f04aec981b44a9e562522fde (patch) | |
tree | 22e045c6e7c3b48a6e75c6c5776833f626b20107 /drm/common | |
parent | b7a56193d5723cfb9984ae3a4feecb2212690a65 (diff) | |
download | frameworks_av-bb9c2e1155d0a844f04aec981b44a9e562522fde.zip frameworks_av-bb9c2e1155d0a844f04aec981b44a9e562522fde.tar.gz frameworks_av-bb9c2e1155d0a844f04aec981b44a9e562522fde.tar.bz2 |
Fixed memory leakage in the DRM framework
Change-Id: Ib1276bec6cafb4e94f8f13b52e50e4987765eec4
Diffstat (limited to 'drm/common')
-rw-r--r-- | drm/common/IDrmManagerService.cpp | 12 | ||||
-rw-r--r-- | drm/common/ReadWriteUtils.cpp | 2 |
2 files changed, 9 insertions, 5 deletions
diff --git a/drm/common/IDrmManagerService.cpp b/drm/common/IDrmManagerService.cpp index 0282036..91fd91e 100644 --- a/drm/common/IDrmManagerService.cpp +++ b/drm/common/IDrmManagerService.cpp @@ -190,8 +190,9 @@ DrmConstraints* BpDrmManagerService::getConstraints( if (0 < bufferSize) { data = new char[bufferSize]; reply.read(data, bufferSize); + drmConstraints->put(&key, data); + delete[] data; } - drmConstraints->put(&key, data); } } return drmConstraints; @@ -219,8 +220,9 @@ DrmMetadata* BpDrmManagerService::getMetadata(int uniqueId, const String8* path) if (0 < bufferSize) { data = new char[bufferSize]; reply.read(data, bufferSize); + drmMetadata->put(&key, data); + delete[] data; } - drmMetadata->put(&key, data); } } return drmMetadata; @@ -889,9 +891,11 @@ status_t BnDrmManagerService::onTransact( int bufferSize = 0; if (NULL != value) { bufferSize = strlen(value); + reply->writeInt32(bufferSize + 1); + reply->write(value, bufferSize + 1); + } else { + reply->writeInt32(0); } - reply->writeInt32(bufferSize + 1); - reply->write(value, bufferSize + 1); } } delete drmConstraints; drmConstraints = NULL; diff --git a/drm/common/ReadWriteUtils.cpp b/drm/common/ReadWriteUtils.cpp index fd17e98..d696f16 100644 --- a/drm/common/ReadWriteUtils.cpp +++ b/drm/common/ReadWriteUtils.cpp @@ -47,7 +47,7 @@ String8 ReadWriteUtils::readBytes(const String8& filePath) { if (length == read(fd, (void*) bytes, length)) { string.append(bytes, length); } - delete bytes; + delete[] bytes; } fclose(file); } |