From f960227fbe98551a71e90f7db8c92aa584d0dc0f Mon Sep 17 00:00:00 2001 From: fanzhihao8 Date: Fri, 5 Sep 2025 15:17:11 +0800 Subject: [PATCH] fix warnings 0905 Signed-off-by: fanzhihao8 --- .../jpeg_yuv_decoder/jpeg_yuvdata_converter.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/common/libs/image/libextplugin/src/jpeg_yuv_decoder/jpeg_yuvdata_converter.cpp b/plugins/common/libs/image/libextplugin/src/jpeg_yuv_decoder/jpeg_yuvdata_converter.cpp index 9c5e1a1a0..9af4de2f5 100644 --- a/plugins/common/libs/image/libextplugin/src/jpeg_yuv_decoder/jpeg_yuvdata_converter.cpp +++ b/plugins/common/libs/image/libextplugin/src/jpeg_yuv_decoder/jpeg_yuvdata_converter.cpp @@ -39,15 +39,20 @@ namespace ImagePlugin { #define SCALE_440_Y 2 #define SCALE_411_X 4 #define SCALE_411_Y 1 +static constexpr uint8_t STRIDE_MAX_FACTOR = 4; static bool IsValidYuvData(const YuvPlaneInfo &data) { if (data.planes[YCOM] == nullptr || data.planes[UCOM] == nullptr || data.planes[VCOM] == nullptr || data.strides[YCOM] == 0 || data.strides[UCOM] == 0 || data.strides[VCOM] == 0) { return false; - } else { - return true; } + if (data.strides[YCOM] < data.planeWidth[YCOM] || data.strides[YCOM] > data.planeWidth[YCOM] * STRIDE_MAX_FACTOR || + data.strides[UCOM] < data.planeWidth[UCOM] || data.strides[UCOM] > data.planeWidth[UCOM] * STRIDE_MAX_FACTOR || + data.strides[VCOM] < data.planeWidth[VCOM] || data.strides[VCOM] > data.planeWidth[VCOM] * STRIDE_MAX_FACTOR) { + return false; + } + return true; } static bool IsValidYuvNVData(const YuvPlaneInfo &data) @@ -89,6 +94,9 @@ static bool IsValidScaleFactor(uint8_t factor) static bool CopyLineData(uint8_t *dest, uint32_t destStride, const uint8_t *src, uint32_t srcStride) { + if (src == nullptr || dest == nullptr) { + return false; + } if (srcStride == 0 || destStride == 0) { return false; } @@ -136,6 +144,9 @@ static bool VerifyParameter(const YuvPlaneInfo &src, const YuvPlaneInfo &dest, } else if (!outYU12 && !IsValidYuvNVData(dest)) { return false; } + if (height > src.planeHeight[YCOM] || height > src.planeHeight[UCOM] || height > src.planeHeight[VCOM]) { + return false; + } return true; } -- Gitee