diff options
author | Jeff Tinker <jtinker@google.com> | 2015-09-21 21:06:45 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-09-21 21:06:45 +0000 |
commit | 78f7932ddd8fed44a8fb421fcbf31f4ec1a82713 (patch) | |
tree | 542a1f5c482f6997eacda70ba5ce8da7f55f7c2e /drm | |
parent | d1cd259108cdc4abc192cb250ab15d03d3b76d96 (diff) | |
parent | 7b642b085413ffd92caa07933b21bc00b55f9905 (diff) | |
download | frameworks_av-78f7932ddd8fed44a8fb421fcbf31f4ec1a82713.zip frameworks_av-78f7932ddd8fed44a8fb421fcbf31f4ec1a82713.tar.gz frameworks_av-78f7932ddd8fed44a8fb421fcbf31f4ec1a82713.tar.bz2 |
am 7b642b08: am 0af50080: am 8ba28c84: am d61dbb36: am 38281f1c: am d386c5be: Merge "Fix heap data leak vulnerability" into klp-dev
* commit '7b642b085413ffd92caa07933b21bc00b55f9905':
Fix heap data leak vulnerability
Diffstat (limited to 'drm')
-rw-r--r-- | drm/common/IDrmManagerService.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/drm/common/IDrmManagerService.cpp b/drm/common/IDrmManagerService.cpp index 3f62ed7..57e5fc5 100644 --- a/drm/common/IDrmManagerService.cpp +++ b/drm/common/IDrmManagerService.cpp @@ -741,9 +741,11 @@ status_t BpDrmManagerService::decrypt( const status_t status = reply.readInt32(); ALOGV("Return value of decrypt() is %d", status); - const int size = reply.readInt32(); - (*decBuffer)->length = size; - reply.read((void *)(*decBuffer)->data, size); + if (status == NO_ERROR) { + const int size = reply.readInt32(); + (*decBuffer)->length = size; + reply.read((void *)(*decBuffer)->data, size); + } return status; } @@ -1438,9 +1440,11 @@ status_t BnDrmManagerService::onTransact( reply->writeInt32(status); - const int size = decBuffer->length; - reply->writeInt32(size); - reply->write(decBuffer->data, size); + if (status == NO_ERROR) { + const int size = decBuffer->length; + reply->writeInt32(size); + reply->write(decBuffer->data, size); + } clearDecryptHandle(&handle); delete encBuffer; encBuffer = NULL; |