summaryrefslogtreecommitdiffstats
path: root/drm
diff options
context:
space:
mode:
authorJeff Tinker <jtinker@google.com>2015-09-21 21:30:09 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-09-21 21:30:09 +0000
commit2151d8f9ae667c53749e81a93f0ec0c60f3b8e05 (patch)
tree307f10d5342c2fcf823920ca7e0af2a38ee135f8 /drm
parent3662ca1098676ed254dae8ffc014d60311d31b7e (diff)
parent78f7932ddd8fed44a8fb421fcbf31f4ec1a82713 (diff)
downloadframeworks_av-2151d8f9ae667c53749e81a93f0ec0c60f3b8e05.zip
frameworks_av-2151d8f9ae667c53749e81a93f0ec0c60f3b8e05.tar.gz
frameworks_av-2151d8f9ae667c53749e81a93f0ec0c60f3b8e05.tar.bz2
am 78f7932d: am 7b642b08: am 0af50080: am 8ba28c84: am d61dbb36: am 38281f1c: am d386c5be: Merge "Fix heap data leak vulnerability" into klp-dev
* commit '78f7932ddd8fed44a8fb421fcbf31f4ec1a82713': Fix heap data leak vulnerability
Diffstat (limited to 'drm')
-rw-r--r--drm/common/IDrmManagerService.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/drm/common/IDrmManagerService.cpp b/drm/common/IDrmManagerService.cpp
index b90da1b..f2e14b6 100644
--- a/drm/common/IDrmManagerService.cpp
+++ b/drm/common/IDrmManagerService.cpp
@@ -742,9 +742,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;
}
@@ -1470,9 +1472,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;