summaryrefslogtreecommitdiffstats
path: root/drm
diff options
context:
space:
mode:
authorAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-02-05 23:40:34 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-02-05 23:40:34 +0000
commitaca92198a127bb8a7d2e0ba9edcb52954bffcc24 (patch)
tree5d1f140af64c3b4e00860ec902a3447f1509f0e9 /drm
parente545f3c8d3f02b80e0fb10c579510167be91da8b (diff)
parent51aa2003766aa35d6c6b3ee688a86e117c65b94d (diff)
downloadframeworks_av-aca92198a127bb8a7d2e0ba9edcb52954bffcc24.tar.gz
frameworks_av-aca92198a127bb8a7d2e0ba9edcb52954bffcc24.tar.bz2
frameworks_av-aca92198a127bb8a7d2e0ba9edcb52954bffcc24.zip
BnCrypto: fix use-before-init in CREATE_PLUGIN am: 51aa200376
Change-Id: I8c30b0d77d2f5fae31afd7d1ed4cae194078630f
Diffstat (limited to 'drm')
-rw-r--r--drm/libmediadrm/ICrypto.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/drm/libmediadrm/ICrypto.cpp b/drm/libmediadrm/ICrypto.cpp
index ee5ea936c4..fe94044875 100644
--- a/drm/libmediadrm/ICrypto.cpp
+++ b/drm/libmediadrm/ICrypto.cpp
@@ -264,8 +264,12 @@ status_t BnCrypto::onTransact(
{
CHECK_INTERFACE(ICrypto, data, reply);
- uint8_t uuid[16];
- data.read(uuid, sizeof(uuid));
+ uint8_t uuid[16] = {0};
+ if (data.read(uuid, sizeof(uuid)) != NO_ERROR) {
+ android_errorWriteLog(0x534e4554, "144767096");
+ reply->writeInt32(BAD_VALUE);
+ return OK;
+ }
size_t opaqueSize = data.readInt32();
void *opaqueData = NULL;
@@ -281,6 +285,11 @@ status_t BnCrypto::onTransact(
}
data.read(opaqueData, opaqueSize);
+ if (data.read(opaqueData, opaqueSize) != NO_ERROR) {
+ android_errorWriteLog(0x534e4554, "144767096");
+ reply->writeInt32(BAD_VALUE);
+ return OK;
+ }
reply->writeInt32(createPlugin(uuid, opaqueData, opaqueSize));
free(opaqueData);