From b9d06f44f01b599f42b1cc573cbea98b83e3be59 Mon Sep 17 00:00:00 2001 From: zewu-feng Date: Wed, 1 Jun 2022 08:59:06 +0800 Subject: [PATCH 1/2] modify for protect code Signed-off-by: zewu-feng --- .../common/libs/image/libjpegplugin/src/icc_profile_info.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/common/libs/image/libjpegplugin/src/icc_profile_info.cpp b/plugins/common/libs/image/libjpegplugin/src/icc_profile_info.cpp index 3b667a876..f15224a0d 100644 --- a/plugins/common/libs/image/libjpegplugin/src/icc_profile_info.cpp +++ b/plugins/common/libs/image/libjpegplugin/src/icc_profile_info.cpp @@ -69,7 +69,7 @@ uint32_t ICCProfileInfo::ParsingICCProfile(j_decompress_ptr cinfo) skcms_ICCProfile parsed; uint32_t parseResult = OHOS::Media::ERR_IMAGE_DENCODE_ICC_FAILED; sk_sp skColorSpace = nullptr; - if (skcms_Parse(profile->data(), profile->size(), &parsed)) { + if (profile != nullptr && skcms_Parse(profile->data(), profile->size(), &parsed)) { skColorSpace = SkColorSpace::Make(parsed); if (skColorSpace != nullptr) { isSupportICCProfile_ = true; -- Gitee From f0d1fb68aad15018ad41920a3cdecdcc5188efa2 Mon Sep 17 00:00:00 2001 From: zewu-feng Date: Wed, 1 Jun 2022 20:20:13 +0800 Subject: [PATCH 2/2] Fix for screen lock app crash Signed-off-by: zewu-feng --- frameworks/innerkitsimpl/common/src/pixel_map.cpp | 8 ++++++-- interfaces/innerkits/include/pixel_map.h | 5 +++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/frameworks/innerkitsimpl/common/src/pixel_map.cpp b/frameworks/innerkitsimpl/common/src/pixel_map.cpp index 91a4daa5d..be692867e 100644 --- a/frameworks/innerkitsimpl/common/src/pixel_map.cpp +++ b/frameworks/innerkitsimpl/common/src/pixel_map.cpp @@ -1634,12 +1634,16 @@ uint32_t PixelMap::crop(const Rect &rect) #ifdef IMAGE_COLORSPACE_FLAG void PixelMap::InnerSetColorSpace(const OHOS::ColorManager::ColorSpace &grColorSpace) { - grColorSpace_ = OHOS::ColorManager::ColorSpace(grColorSpace.ToSkColorSpace()); + grColorSpace_ = std::make_shared(grColorSpace.ToSkColorSpace()); } OHOS::ColorManager::ColorSpace PixelMap::InnerGetGrColorSpace() { - return grColorSpace_; + if (grColorSpace_ == nullptr) { + grColorSpace_ = + std::make_shared(OHOS::ColorManager::ColorSpaceName::SRGB); + } + return *grColorSpace_; } #endif } // namespace Media diff --git a/interfaces/innerkits/include/pixel_map.h b/interfaces/innerkits/include/pixel_map.h index 3720e4be5..88a37c14e 100644 --- a/interfaces/innerkits/include/pixel_map.h +++ b/interfaces/innerkits/include/pixel_map.h @@ -204,8 +204,9 @@ private: bool useSourceAsResponse_ = false; #ifdef IMAGE_COLORSPACE_FLAG - OHOS::ColorManager::ColorSpace grColorSpace_ = - OHOS::ColorManager::ColorSpace(OHOS::ColorManager::ColorSpaceName::SRGB); + std::shared_ptr grColorSpace_ = nullptr; +#else + std::shared_ptr grColorSpace_ = nullptr; #endif }; } // namespace Media -- Gitee