diff options
author | Tharaga Balachandran <tbalacha@codeaurora.org> | 2020-03-10 12:49:18 -0400 |
---|---|---|
committer | Baldev Sahu <bsahu@codeaurora.org> | 2020-05-12 09:33:33 +0530 |
commit | 2c9873c1387355f0543c93d56b4849b0f84730f7 (patch) | |
tree | c7b1c95194e02259e25467b856118afa388ef4ce /gralloc | |
parent | b3d66dcc34b36e3edcff317db6671321a60125d4 (diff) |
gralloc: Check HDR dynamic metadata size before returning.
CRs-Fixed: 2638571
Change-Id: Ie61b4362ba253d2bec7b8e72272aee76ed9c8269
Diffstat (limited to 'gralloc')
-rw-r--r-- | gralloc/gr_buf_mgr.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gralloc/gr_buf_mgr.cpp b/gralloc/gr_buf_mgr.cpp index e9fcb81d..b6dc2a08 100644 --- a/gralloc/gr_buf_mgr.cpp +++ b/gralloc/gr_buf_mgr.cpp @@ -928,9 +928,10 @@ Error BufferManager::GetMetadata(private_handle_t *handle, int64_t metadatatype_ } case (int64_t)StandardMetadataType::SMPTE2094_40: { std::vector<uint8_t> dynamic_metadata_payload; - if (metadata->color.dynamicMetaDataValid) { + if (metadata->color.dynamicMetaDataValid && + metadata->color.dynamicMetaDataLen <= HDR_DYNAMIC_META_DATA_SZ) { dynamic_metadata_payload.resize(metadata->color.dynamicMetaDataLen); - memcpy(&dynamic_metadata_payload, &metadata->color.dynamicMetaDataPayload, + memcpy(dynamic_metadata_payload.data(), &metadata->color.dynamicMetaDataPayload, metadata->color.dynamicMetaDataLen); android::gralloc4::encodeSmpte2094_40(dynamic_metadata_payload, out); } else { |