diff --git a/frameworks/innerkitsimpl/stream/src/file_source_stream.cpp b/frameworks/innerkitsimpl/stream/src/file_source_stream.cpp index ffe748527bf8e26854d777a26cb473a581985272..6376d206ffdb1019c29ebba91e1458b1efa5ee5a 100644 --- a/frameworks/innerkitsimpl/stream/src/file_source_stream.cpp +++ b/frameworks/innerkitsimpl/stream/src/file_source_stream.cpp @@ -431,11 +431,16 @@ OutputDataStream* FileSourceStream::ToOutputDataStream() if (filePtr_ == nullptr) { return nullptr; } - if (DupFd(filePtr_, dupFd)) { + if (!DupFd(filePtr_, dupFd)) { IMAGE_LOGE("[FileSourceStream] ToOutputDataStream fd failed"); return nullptr; } - return new (std::nothrow) FilePackerStream(dupFd); + OutputDataStream* stream = new (std::nothrow) FilePackerStream(dupFd); + if (!stream) { + close(dupFd); + return nullptr; + } + return stream; } int FileSourceStream::GetMMapFd() diff --git a/frameworks/innerkitsimpl/utils/src/image_utils.cpp b/frameworks/innerkitsimpl/utils/src/image_utils.cpp index c5f89405a848273f0c64d62837a2f0d78acc4deb..a6407d929f20d611f402251e044fa6d3d5a67d11 100644 --- a/frameworks/innerkitsimpl/utils/src/image_utils.cpp +++ b/frameworks/innerkitsimpl/utils/src/image_utils.cpp @@ -806,6 +806,10 @@ std::string ImageUtils::GetLocalTime() auto ms = std::chrono::duration_cast(now.time_since_epoch()) % 1000; std::time_t t = std::chrono::system_clock::to_time_t(now); std::tm tm = *std::localtime(&t); + if (tm == NULL) { + IMAGE_LOGE("ImageUtils::GetLocalTime error, returned NULL"); + return ""; + } std::stringstream ss; int millSecondWidth = 3; diff --git a/plugins/common/libs/image/libextplugin/src/hardware/jpeg_hw_decoder.cpp b/plugins/common/libs/image/libextplugin/src/hardware/jpeg_hw_decoder.cpp index 42ff4c42483bc2deb1de39190008e5dba926b8a8..ccea559684aeacdfddaa8378045000402579568f 100644 --- a/plugins/common/libs/image/libextplugin/src/hardware/jpeg_hw_decoder.cpp +++ b/plugins/common/libs/image/libextplugin/src/hardware/jpeg_hw_decoder.cpp @@ -267,7 +267,7 @@ bool JpegHardwareDecoder::HuffmanTblTransform(JHUFF_TBL* huffTbl, CodecJpegHuffT actualHuffValLen += huffTbl->bits[i]; } JPEG_HW_LOGD("actualHuffValLen=%{public}d", actualHuffValLen); - if (actualHuffValLen > MAX_LIST_HUFFVAL_LEN) { + if (actualHuffValLen >= MAX_LIST_HUFFVAL_LEN) { JPEG_HW_LOGE("invalid huffVal len: %{public}d", actualHuffValLen); return false; }