diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-06-22 23:22:09 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-06-22 23:22:09 +0000 |
commit | 89e29ac16df74d76cce717efd980e75ec8675d65 (patch) | |
tree | 010590ec8cf640de1f3da06651d97f728ec53473 | |
parent | f3600e797d86ed5ab060ab9252abee7ed1fc41e0 (diff) | |
parent | 57778dc0da9c3bc1620a56f278d4bb84b33f4489 (diff) | |
download | display-android13-s3-release.tar.gz |
Snap for 8756258 from 57778dc0da9c3bc1620a56f278d4bb84b33f4489 to tm-releaseandroid-vts-13.0_r1android-security-13.0.0_r9android-security-13.0.0_r8android-security-13.0.0_r7android-security-13.0.0_r6android-security-13.0.0_r5android-security-13.0.0_r4android-security-13.0.0_r3android-security-13.0.0_r2android-security-13.0.0_r17android-security-13.0.0_r16android-security-13.0.0_r15android-security-13.0.0_r14android-security-13.0.0_r13android-security-13.0.0_r12android-security-13.0.0_r11android-security-13.0.0_r10android-security-13.0.0_r1android-cts-13.0_r1android-13.0.0_r6android-13.0.0_r5android-13.0.0_r4android-13.0.0_r3android-13.0.0_r2android-13.0.0_r1android13-security-releaseandroid13-s3-releaseandroid13-s2-releaseandroid13-s1-release
Change-Id: I625d3d0e14358f009a8705c3cfa672821a3c5d4a
-rw-r--r-- | gralloc/gr_buf_mgr.cpp | 89 |
1 files changed, 64 insertions, 25 deletions
diff --git a/gralloc/gr_buf_mgr.cpp b/gralloc/gr_buf_mgr.cpp index 00e425cf..172083e7 100644 --- a/gralloc/gr_buf_mgr.cpp +++ b/gralloc/gr_buf_mgr.cpp @@ -51,6 +51,7 @@ using aidl::android::hardware::graphics::common::Smpte2086; using aidl::android::hardware::graphics::common::StandardMetadataType; using aidl::android::hardware::graphics::common::XyColor; using ::android::hardware::graphics::common::V1_2::PixelFormat; +using IMapper_4_0_Error = ::android::hardware::graphics::mapper::V4_0::Error; static BufferInfo GetBufferInfo(const BufferDescriptor &descriptor) { return BufferInfo(descriptor.GetWidth(), descriptor.GetHeight(), descriptor.GetFormat(), @@ -1490,7 +1491,9 @@ Error BufferManager::SetMetadata(private_handle_t *handle, int64_t metadatatype_ return Error::UNSUPPORTED; case (int64_t)StandardMetadataType::DATASPACE: Dataspace dataspace; - android::gralloc4::decodeDataspace(in, &dataspace); + if (android::gralloc4::decodeDataspace(in, &dataspace)) { + return Error::UNSUPPORTED; + } dataspaceToColorMetadata(dataspace, &metadata->color); break; case (int64_t)StandardMetadataType::BLEND_MODE: @@ -1500,7 +1503,9 @@ Error BufferManager::SetMetadata(private_handle_t *handle, int64_t metadatatype_ break; case (int64_t)StandardMetadataType::SMPTE2086: { std::optional<Smpte2086> mastering_display_values; - android::gralloc4::decodeSmpte2086(in, &mastering_display_values); + if (android::gralloc4::decodeSmpte2086(in, &mastering_display_values)) { + return Error::UNSUPPORTED; + } if (mastering_display_values != std::nullopt) { metadata->color.masteringDisplayInfo.colorVolumeSEIEnabled = true; @@ -1539,7 +1544,9 @@ Error BufferManager::SetMetadata(private_handle_t *handle, int64_t metadatatype_ } case (int64_t)StandardMetadataType::CTA861_3: { std::optional<Cta861_3> content_light_level; - android::gralloc4::decodeCta861_3(in, &content_light_level); + if (android::gralloc4::decodeCta861_3(in, &content_light_level)) { + return Error::UNSUPPORTED; + } if (content_light_level != std::nullopt) { metadata->color.contentLightLevel.lightLevelSEIEnabled = true; metadata->color.contentLightLevel.maxContentLightLevel = @@ -1557,7 +1564,9 @@ Error BufferManager::SetMetadata(private_handle_t *handle, int64_t metadatatype_ } case (int64_t)StandardMetadataType::SMPTE2094_40: { std::optional<std::vector<uint8_t>> dynamic_metadata_payload; - android::gralloc4::decodeSmpte2094_40(in, &dynamic_metadata_payload); + if (android::gralloc4::decodeSmpte2094_40(in, &dynamic_metadata_payload)) { + return Error::UNSUPPORTED; + } if (dynamic_metadata_payload != std::nullopt) { if (dynamic_metadata_payload->size() > HDR_DYNAMIC_META_DATA_SZ) return Error::BAD_VALUE; @@ -1599,9 +1608,13 @@ Error BufferManager::SetMetadata(private_handle_t *handle, int64_t metadatatype_ } case (int64_t)StandardMetadataType::CROP: { std::vector<Rect> in_crop; - android::gralloc4::decodeCrop(in, &in_crop); - if (in_crop.size() != 1) + if (android::gralloc4::decodeCrop(in, &in_crop)) { + return Error::UNSUPPORTED; + } + + if (in_crop.size() != 1) { return Error::UNSUPPORTED; + } metadata->crop.left = in_crop[0].left; metadata->crop.top = in_crop[0].top; @@ -1610,49 +1623,75 @@ Error BufferManager::SetMetadata(private_handle_t *handle, int64_t metadatatype_ break; } case QTI_VT_TIMESTAMP: - android::gralloc4::decodeUint64(qtigralloc::MetadataType_VTTimestamp, in, - &metadata->vtTimeStamp); + if (android::gralloc4::decodeUint64(qtigralloc::MetadataType_VTTimestamp, in, + &metadata->vtTimeStamp)) { + return Error::UNSUPPORTED; + } break; case QTI_COLOR_METADATA: ColorMetaData color; - qtigralloc::decodeColorMetadata(in, &color); + if (qtigralloc::decodeColorMetadata(in, &color) != IMapper_4_0_Error::NONE) { + return Error::UNSUPPORTED; + } metadata->color = color; break; case QTI_PP_PARAM_INTERLACED: - android::gralloc4::decodeInt32(qtigralloc::MetadataType_PPParamInterlaced, in, - &metadata->interlaced); + if (android::gralloc4::decodeInt32(qtigralloc::MetadataType_PPParamInterlaced, in, + &metadata->interlaced)) { + return Error::UNSUPPORTED; + } break; case QTI_VIDEO_PERF_MODE: - android::gralloc4::decodeUint32(qtigralloc::MetadataType_VideoPerfMode, in, - &metadata->isVideoPerfMode); + if (android::gralloc4::decodeUint32(qtigralloc::MetadataType_VideoPerfMode, in, + &metadata->isVideoPerfMode)) { + return Error::UNSUPPORTED; + } break; case QTI_GRAPHICS_METADATA: - qtigralloc::decodeGraphicsMetadata(in, &metadata->graphics_metadata); + if (qtigralloc::decodeGraphicsMetadata(in, &metadata->graphics_metadata) != + IMapper_4_0_Error::NONE) { + return Error::UNSUPPORTED; + } break; case QTI_UBWC_CR_STATS_INFO: - qtigralloc::decodeUBWCStats(in, &metadata->ubwcCRStats[0]); + if (qtigralloc::decodeUBWCStats(in, &metadata->ubwcCRStats[0]) != IMapper_4_0_Error::NONE) { + return Error::UNSUPPORTED; + } break; case QTI_REFRESH_RATE: - android::gralloc4::decodeFloat(qtigralloc::MetadataType_RefreshRate, in, - &metadata->refreshrate); + if (android::gralloc4::decodeFloat(qtigralloc::MetadataType_RefreshRate, in, + &metadata->refreshrate)) { + return Error::UNSUPPORTED; + } break; case QTI_MAP_SECURE_BUFFER: - android::gralloc4::decodeInt32(qtigralloc::MetadataType_MapSecureBuffer, in, - &metadata->mapSecureBuffer); + if (android::gralloc4::decodeInt32(qtigralloc::MetadataType_MapSecureBuffer, in, + &metadata->mapSecureBuffer)) { + return Error::UNSUPPORTED; + } break; case QTI_LINEAR_FORMAT: - android::gralloc4::decodeUint32(qtigralloc::MetadataType_LinearFormat, in, - &metadata->linearFormat); + if (android::gralloc4::decodeUint32(qtigralloc::MetadataType_LinearFormat, in, + &metadata->linearFormat)) { + return Error::UNSUPPORTED; + } break; case QTI_SINGLE_BUFFER_MODE: - android::gralloc4::decodeUint32(qtigralloc::MetadataType_SingleBufferMode, in, - &metadata->isSingleBufferMode); + if (android::gralloc4::decodeUint32(qtigralloc::MetadataType_SingleBufferMode, in, + &metadata->isSingleBufferMode)) { + return Error::UNSUPPORTED; + } break; case QTI_CVP_METADATA: - qtigralloc::decodeCVPMetadata(in, &metadata->cvpMetadata); + if (qtigralloc::decodeCVPMetadata(in, &metadata->cvpMetadata) != IMapper_4_0_Error::NONE) { + return Error::UNSUPPORTED; + } break; case QTI_VIDEO_HISTOGRAM_STATS: - qtigralloc::decodeVideoHistogramMetadata(in, &metadata->video_histogram_stats); + if (qtigralloc::decodeVideoHistogramMetadata(in, &metadata->video_histogram_stats) != + IMapper_4_0_Error::NONE) { + return Error::UNSUPPORTED; + } break; default: #ifdef METADATA_V2 |