diff options
| author | Edwin Wong <edwinwong@google.com> | 2019-12-17 17:56:17 -0800 |
|---|---|---|
| committer | Edwin Wong <edwinwong@google.com> | 2020-01-16 22:52:46 +0000 |
| commit | dc4c427b2155a9928a7cdaac7c0a787dd9c8192d (patch) | |
| tree | 853f066e1e6e5e271cc17315708f1033659fbb5c | |
| parent | 1d2cccfd2abecda52b49f123bf5905079578c542 (diff) | |
| download | frameworks_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
| -rw-r--r-- | drm/mediadrm/plugins/clearkey/hidl/CryptoPlugin.cpp | 2 |
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(); |
