diff --git a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/BUILD.gn b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/BUILD.gn index 16732bb59a55bb3eefd446bc15bfd6f038c63689..15dff9b51c6e3d64aabf015d886bde626696b02c 100644 --- a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/BUILD.gn +++ b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/BUILD.gn @@ -42,6 +42,7 @@ group("fuzztest") { "sourceservicedump_fuzzer:fuzztest", "sourceservicegetdumpinfo_fuzzer:fuzztest", "sourceservicecamdeverase_fuzzer:fuzztest", + "sourceserviceinitsource_fuzzer:fuzztest", "sourceserviceregisterdistributedhardware_fuzzer:fuzztest", "sourceservicereleasesource_fuzzer:fuzztest", "sourceserviceunregisterdistributedhardware_fuzzer:fuzztest", diff --git a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/sourceserviceinitsource_fuzzer/sourceserviceinitsource_fuzzer.cpp b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/sourceserviceinitsource_fuzzer/sourceserviceinitsource_fuzzer.cpp index da73169dc02618275f60d203fc22513aaeba0c4b..c3fe9e5b0db32f77fd24a53f7e9a58a816800382 100644 --- a/interfaces/inner_kits/native_cpp/test/sourcefuzztest/sourceserviceinitsource_fuzzer/sourceserviceinitsource_fuzzer.cpp +++ b/interfaces/inner_kits/native_cpp/test/sourcefuzztest/sourceserviceinitsource_fuzzer/sourceserviceinitsource_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Huawei Device Co., Ltd. + * Copyright (c) 2023-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -14,6 +14,7 @@ */ #include "sourceserviceinitsource_fuzzer.h" +#include #include "dcamera_source_callback.h" #include "distributed_camera_constants.h" @@ -25,10 +26,13 @@ namespace OHOS { namespace DistributedHardware { void SourceServiceInitSourceFuzzTest(const uint8_t* data, size_t size) { - if ((data == nullptr) || (size == 0)) { + if ((data == nullptr) || (size < sizeof(int32_t))) { return; } - std::string params(reinterpret_cast(data), size); + + FuzzedDataProvider fdp(data, size); + int32_t tempLen = 32; + std::string params(fdp.ConsumeRandomLengthString(tempLen)); std::shared_ptr sourceService = std::make_shared(DISTRIBUTED_HARDWARE_CAMERA_SOURCE_SA_ID, true);