From 12610e59d85f82f71b627a812de05cb5a5c99b8b Mon Sep 17 00:00:00 2001 From: dengyanfang Date: Thu, 4 Sep 2025 11:23:53 +0800 Subject: [PATCH] fix fuzz warning Signed-off-by: dengyanfang23 --- .../ge_aibar_shader_filter_fuzzer.cpp | 7 ++++- ...ear_gradient_blur_shader_filter_fuzzer.cpp | 27 +++++++++++++++---- .../ge_magnifier_shader_filter_fuzzer.cpp | 12 ++++++++- .../gerender_fuzzer/ge_render_fuzzer.cpp | 14 +++++----- .../ge_visual_effect_container_fuzzer.cpp | 6 ++++- 5 files changed, 52 insertions(+), 14 deletions(-) diff --git a/test/fuzztest/geaibarshaderfilter_fuzzer/ge_aibar_shader_filter_fuzzer.cpp b/test/fuzztest/geaibarshaderfilter_fuzzer/ge_aibar_shader_filter_fuzzer.cpp index 660e805..59263fe 100644 --- a/test/fuzztest/geaibarshaderfilter_fuzzer/ge_aibar_shader_filter_fuzzer.cpp +++ b/test/fuzztest/geaibarshaderfilter_fuzzer/ge_aibar_shader_filter_fuzzer.cpp @@ -23,7 +23,12 @@ namespace Rosen { std::string GetDescriptionFuzzTest() { - Drawing::GEAIBarShaderFilterParams params { 2.0, 2.0, 2.0, 2.0, 3.0 }; + float aiBarLow = GETest::GetPlainData(); + float aiBarHigh = GETest::GetPlainData(); + float aiBarThreshold = GETest::GetPlainData(); + float aiBarOpacity = GETest::GetPlainData(); + float aiBarSaturation = GETest::GetPlainData(); + Drawing::GEAIBarShaderFilterParams params { aiBarLow, aiBarHigh, aiBarThreshold, aiBarOpacity, aiBarSaturation }; std::unique_ptr shaderFilter = std::make_unique(params); std::string res = shaderFilter->GetDescription(); diff --git a/test/fuzztest/gelineargradientblurshaderfilter_fuzzer/ge_linear_gradient_blur_shader_filter_fuzzer.cpp b/test/fuzztest/gelineargradientblurshaderfilter_fuzzer/ge_linear_gradient_blur_shader_filter_fuzzer.cpp index 89c8222..37a91d5 100644 --- a/test/fuzztest/gelineargradientblurshaderfilter_fuzzer/ge_linear_gradient_blur_shader_filter_fuzzer.cpp +++ b/test/fuzztest/gelineargradientblurshaderfilter_fuzzer/ge_linear_gradient_blur_shader_filter_fuzzer.cpp @@ -25,12 +25,16 @@ std::shared_ptr ProcessImageFuzzTest() { GEGradientDirection direction = GETest::GetPlainData(); Drawing::GELinearGradientBlurShaderFilterParams params{1.f, {{0.1f, 0.1f}}, static_cast(direction), - 1.f, 1.f, Drawing::Matrix(), 1.f, 1.f, true}; + 1.f, 1.f, Drawing::Matrix(), 1.f, 1.f, true, false}; std::unique_ptr shaderFilter = std::make_unique(params); - Drawing::Rect src { 1.0f, 1.0f, 2.0f, 2.0f }; - Drawing::Rect dst { 1.0f, 1.0f, 2.0f, 2.0f }; + float fLeft = GETest::GetPlainData(); + float fTop = GETest::GetPlainData(); + float fWidth = GETest::GetPlainData(); + float fHeight = GETest::GetPlainData(); + Drawing::Rect src{fLeft, fTop, fWidth, fHeight}; + Drawing::Rect dst{fLeft, fTop, fWidth, fHeight}; Drawing::Canvas canvas; std::shared_ptr image { nullptr }; auto res = shaderFilter->ProcessImage(canvas, image, src, dst); @@ -50,7 +54,13 @@ std::string GetDescriptionFuzzTest() float radius = GETest::GetPlainData(); std::vector> fractionStops = {{1.0, 0.0}, {0.0, 1.0}}; Drawing::Matrix mat; - Drawing::GELinearGradientBlurShaderFilterParams params{radius, fractionStops, 2, 10.0, 10.0, mat, 1.0, 1.0, false}; + int direction = GETest::GetPlainData(); + float geoWidth = GETest::GetPlainData(); + float geoHeight = GETest::GetPlainData(); + float tranX = GETest::GetPlainData(); + float tranY = GETest::GetPlainData(); + Drawing::GELinearGradientBlurShaderFilterParams params{radius, fractionStops, direction, geoWidth, + geoHeight, mat, tranX, tranY, false, false}; std::unique_ptr shaderFilter = std::make_unique(params); std::string res = shaderFilter->GetDescription(); @@ -65,7 +75,14 @@ std::shared_ptr ProcessImageDDGRFuzzTest(const uint8_t *data, si float positionScale = fdp.ConsumeFloatingPoint(); std::vector> fractionStops = {{blurDegree, positionScale}}; Drawing::Matrix mat; - Drawing::GELinearGradientBlurShaderFilterParams params = {5.0, fractionStops, 2, 10.0, 10.0, mat, 1.0, 1.0, false}; + float radius = GETest::GetPlainData(); + int direction = GETest::GetPlainData(); + float geoWidth = GETest::GetPlainData(); + float geoHeight = GETest::GetPlainData(); + float tranX = GETest::GetPlainData(); + float tranY = GETest::GetPlainData(); + Drawing::GELinearGradientBlurShaderFilterParams params{radius, fractionStops, direction, geoWidth, + geoHeight, mat, tranX, tranY, false, false}; std::unique_ptr shaderFilter = std::make_unique(params); diff --git a/test/fuzztest/gemagnifiershaderfilter_fuzzer/ge_magnifier_shader_filter_fuzzer.cpp b/test/fuzztest/gemagnifiershaderfilter_fuzzer/ge_magnifier_shader_filter_fuzzer.cpp index 9ec382d..705f341 100644 --- a/test/fuzztest/gemagnifiershaderfilter_fuzzer/ge_magnifier_shader_filter_fuzzer.cpp +++ b/test/fuzztest/gemagnifiershaderfilter_fuzzer/ge_magnifier_shader_filter_fuzzer.cpp @@ -42,7 +42,17 @@ std::shared_ptr ProcessImageFuzzTest() std::string GetDescriptionFuzzTest() { - Drawing::GEMagnifierShaderFilterParams params = {1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f}; + float factor = GETest::GetPlainData(); + float width = GETest::GetPlainData(); + float height = GETest::GetPlainData(); + float cornerRadius = GETest::GetPlainData(); + float borderWidth = GETest::GetPlainData(); + float shadowOffsetX = GETest::GetPlainData(); + float shadowOffsetY = GETest::GetPlainData(); + float shadowSize = GETest::GetPlainData(); + float shadowStrength = GETest::GetPlainData(); + Drawing::GEMagnifierShaderFilterParams params = {factor, width, height, cornerRadius, borderWidth, + shadowOffsetX, shadowOffsetY, shadowSize, shadowStrength}; std::unique_ptr shaderFilter = std::make_unique(params); std::string res = shaderFilter->GetDescription(); diff --git a/test/fuzztest/gerender_fuzzer/ge_render_fuzzer.cpp b/test/fuzztest/gerender_fuzzer/ge_render_fuzzer.cpp index 75c4c92..6d9192c 100644 --- a/test/fuzztest/gerender_fuzzer/ge_render_fuzzer.cpp +++ b/test/fuzztest/gerender_fuzzer/ge_render_fuzzer.cpp @@ -70,16 +70,18 @@ std::shared_ptr GERenderFuzzTest002() return resImg; } -std::shared_ptr GERenderFuzzTest003(const uint8_t *data, size_t size) +std::shared_ptr GERenderFuzzTest003() { - FuzzedDataProvider fdp(data, size); - auto geRender = std::make_shared(); Drawing::Canvas canvas; auto veContainer = std::make_shared(); std::shared_ptr image = nullptr; - Drawing::Rect src{0.0, 0.0, 100.0, 100.0}; - Drawing::Rect dst{0.0, 0.0, 100.0, 100.0}; + float fLeft = GETest::GetPlainData(); + float fTop = GETest::GetPlainData(); + float fWidth = GETest::GetPlainData(); + float fHeight = GETest::GetPlainData(); + Drawing::Rect src{fLeft, fTop, fWidth, fHeight}; + Drawing::Rect dst{fLeft, fTop, fWidth, fHeight}; Drawing::SamplingOptions sampling; auto resImg = geRender->ApplyImageEffect(canvas, *veContainer, image, src, dst, sampling); return resImg; @@ -207,7 +209,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) /* Run your code on data */ OHOS::GraphicsEffectEngine::GERenderFuzzTest001(); OHOS::GraphicsEffectEngine::GERenderFuzzTest002(); - OHOS::GraphicsEffectEngine::GERenderFuzzTest003(data, size); + OHOS::GraphicsEffectEngine::GERenderFuzzTest003(); OHOS::GraphicsEffectEngine::GERenderFuzzTest004(); OHOS::GraphicsEffectEngine::GERenderFuzzTest005(); OHOS::GraphicsEffectEngine::GERenderFuzzTest006(); diff --git a/test/fuzztest/gevisualeffectcontainer_fuzzer/ge_visual_effect_container_fuzzer.cpp b/test/fuzztest/gevisualeffectcontainer_fuzzer/ge_visual_effect_container_fuzzer.cpp index 2944eb2..c540865 100644 --- a/test/fuzztest/gevisualeffectcontainer_fuzzer/ge_visual_effect_container_fuzzer.cpp +++ b/test/fuzztest/gevisualeffectcontainer_fuzzer/ge_visual_effect_container_fuzzer.cpp @@ -37,7 +37,11 @@ bool GEVisualEffectContainerFuzzTest001() bool GEVisualEffectContainerFuzzTest002() { auto veContainer = std::make_shared(); - auto visualEffect = nullptr; + std::shared_ptr visualEffect = nullptr; + if (GETest::GetPlainData()) { + DrawingPaintType type = GETest::GetPlainData(); + visualEffect = std::make_shared("", type); + } veContainer->AddToChainedFilter(visualEffect); return true; } -- Gitee