summaryrefslogtreecommitdiffstats
path: root/drm
diff options
context:
space:
mode:
authorEdwin Wong <edwinwong@google.com>2019-12-17 17:56:17 -0800
committerEdwin Wong <edwinwong@google.com>2020-01-16 22:52:46 +0000
commitdc4c427b2155a9928a7cdaac7c0a787dd9c8192d (patch)
tree853f066e1e6e5e271cc17315708f1033659fbb5c /drm
parent1d2cccfd2abecda52b49f123bf5905079578c542 (diff)
downloadframeworks_av-dc4c427b2155a9928a7cdaac7c0a787dd9c8192d.tar.gz
frameworks_av-dc4c427b2155a9928a7cdaac7c0a787dd9c8192d.tar.bz2
frameworks_av-dc4c427b2155a9928a7cdaac7c0a787dd9c8192d.zip
[DO NOT MERGE] Fix heap buffer overflow in clearkey CryptoPlugin::decrypt
Fix destPtr was not pointing to destination raw pointer. bug: 144506242 Test: sts ANDROID_BUILD_TOP= ./android-sts/tools/sts-tradefed run sts-engbuild-no-spl-lock -m StsHostTestCases --test android.security.sts.Poc19_12#testPocBug_144506242 Change-Id: I9425baa21c82d5a5edf37c87989adbade0428b67
Diffstat (limited to 'drm')
-rw-r--r--drm/mediadrm/plugins/clearkey/hidl/CryptoPlugin.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/drm/mediadrm/plugins/clearkey/hidl/CryptoPlugin.cpp b/drm/mediadrm/plugins/clearkey/hidl/CryptoPlugin.cpp
index 198e0997d0..cd2224db97 100644
--- a/drm/mediadrm/plugins/clearkey/hidl/CryptoPlugin.cpp
+++ b/drm/mediadrm/plugins/clearkey/hidl/CryptoPlugin.cpp
@@ -106,6 +106,8 @@ Return<void> CryptoPlugin::decrypt(
return Void();
}
+ base = static_cast<uint8_t *>(static_cast<void *>(destBase->getPointer()));
+
if (destBuffer.offset + destBuffer.size > destBase->getSize()) {
_hidl_cb(Status::ERROR_DRM_CANNOT_HANDLE, 0, "invalid buffer size");
return Void();