diff --git a/frameworks/innerkitsimpl/common/src/pixel_yuv.cpp b/frameworks/innerkitsimpl/common/src/pixel_yuv.cpp index 489fa332bc49aa5ac2755c7b799d3b78c81c7510..ce1e95bf00655a27943b61409303af971aab5c85 100644 --- a/frameworks/innerkitsimpl/common/src/pixel_yuv.cpp +++ b/frameworks/innerkitsimpl/common/src/pixel_yuv.cpp @@ -869,7 +869,7 @@ bool PixelYuv::CheckPixelsInput(const uint8_t *dst, const uint64_t &bufferSize, } if (IsYUVP010Format(imageInfo_.pixelFormat)) { - if (static_cast(offset) >= (bufferSize - YUV420P010_MIN_PIXEL_UINTBYTES)) { + if ((static_cast(offset) + YUV420P010_MIN_PIXEL_UINTBYTES) >= bufferSize) { IMAGE_LOGE( "CheckPixelsInput fail, height(%{public}d), width(%{public}d) " "offset(%{public}u), bufferSize:%{public}llu.", @@ -878,7 +878,7 @@ bool PixelYuv::CheckPixelsInput(const uint8_t *dst, const uint64_t &bufferSize, return false; } } else { - if (static_cast(offset) >= (bufferSize - YUV420_MIN_PIXEL_UINTBYTES)) { + if ((static_cast(offset) + YUV420_MIN_PIXEL_UINTBYTES) >= bufferSize) { IMAGE_LOGE( "CheckPixelsInput fail, height(%{public}d), width(%{public}d) " "offset(%{public}u), bufferSize:%{public}llu.", diff --git a/frameworks/innerkitsimpl/picture/picture.cpp b/frameworks/innerkitsimpl/picture/picture.cpp index 5cd0a73d714536e7227a708afe0776df815b3ac5..8f3f51cb8e2244bd5bdb14fcf7859f7039f6918a 100644 --- a/frameworks/innerkitsimpl/picture/picture.cpp +++ b/frameworks/innerkitsimpl/picture/picture.cpp @@ -667,7 +667,8 @@ int32_t Picture::SetExifMetadata(sptr &surfaceBuffer) CHECK_ERROR_RETURN_RET(extraData == nullptr, ERR_IMAGE_INVALID_PARAMETER); int32_t size = NUM_0; - extraData->ExtraGet(EXIF_DATA_SIZE_TAG, size); + GSError ret = extraData->ExtraGet(EXIF_DATA_SIZE_TAG, size); + CHECK_ERROR_RETURN_RET_LOG(ret != GSError::GSERROR_OK, ERR_IMAGE_SOURCE_DATA, "Failed to get exif data."); bool cond = size <= 0; CHECK_ERROR_RETURN_RET_LOG(cond, ERR_IMAGE_INVALID_PARAMETER, "Invalid buffer size: %d.", size); diff --git a/frameworks/kits/js/common/picture_ndk/picture_native.cpp b/frameworks/kits/js/common/picture_ndk/picture_native.cpp index f90d9f6376559344978c69c52a96da9a416333d2..ede46bd0cc44b7959d1a0626ef5dd718f092059a 100644 --- a/frameworks/kits/js/common/picture_ndk/picture_native.cpp +++ b/frameworks/kits/js/common/picture_ndk/picture_native.cpp @@ -308,7 +308,8 @@ MIDK_EXPORT Image_ErrorCode OH_AuxiliaryPictureNative_SetInfo(OH_AuxiliaryPictureNative *auxiliaryPicture, OH_AuxiliaryPictureInfo *info) { - if (auxiliaryPicture == nullptr || !auxiliaryPicture->GetInnerAuxiliaryPicture() || info == nullptr) { + if (auxiliaryPicture == nullptr || !auxiliaryPicture->GetInnerAuxiliaryPicture() || + info == nullptr || !info->GetInnerAuxiliaryPictureInfo()) { return IMAGE_BAD_PARAMETER; } auto tempInfo = *(info->GetInnerAuxiliaryPictureInfo().get()); diff --git a/plugins/common/libs/image/libextplugin/src/heif_impl/heif_parser/heif_parser.cpp b/plugins/common/libs/image/libextplugin/src/heif_impl/heif_parser/heif_parser.cpp index b1650e3027923fd50e3c57ab9d4ef7517248071d..78becd826c4d61ac150f453edc9e78a99f9bd6a3 100644 --- a/plugins/common/libs/image/libextplugin/src/heif_impl/heif_parser/heif_parser.cpp +++ b/plugins/common/libs/image/libextplugin/src/heif_impl/heif_parser/heif_parser.cpp @@ -713,6 +713,9 @@ std::shared_ptr HeifParser::GetGainmapImage() std::shared_ptr HeifParser::GetAuxiliaryMapImage(const std::string type) { + if (!primaryImage_) { + return nullptr; + } auto auxImages = primaryImage_->GetAuxImages(); for (auto image : auxImages) { if (image->GetAuxImageType() == type) {