diff --git a/services/distributeddataservice/service/test/fuzztest/cloudservicestub_fuzzer/cloudservicestub_fuzzer.cpp b/services/distributeddataservice/service/test/fuzztest/cloudservicestub_fuzzer/cloudservicestub_fuzzer.cpp index 9e467e6bc68f3ca48b0829803e4cdab984c8efaa..72904220550511427cc54f076b9f1b836de3bdf3 100644 --- a/services/distributeddataservice/service/test/fuzztest/cloudservicestub_fuzzer/cloudservicestub_fuzzer.cpp +++ b/services/distributeddataservice/service/test/fuzztest/cloudservicestub_fuzzer/cloudservicestub_fuzzer.cpp @@ -69,12 +69,14 @@ void AllocAndSetHapToken() bool OnRemoteRequestFuzz(FuzzedDataProvider &provider) { - std::shared_ptr cloudServiceImpl = std::make_shared(); - std::shared_ptr executor = std::make_shared(NUM_MAX, NUM_MIN); - cloudServiceImpl->OnBind( - { "CloudServiceStubFuzz", static_cast(IPCSkeleton::GetSelfTokenID()), std::move(executor) }); - - AllocAndSetHapToken(); + static std::shared_ptr cloudServiceImpl = std::make_shared(); + static std::once_flag onceFlag; + std::call_once(onceFlag, [&]() { + std::shared_ptr executor = std::make_shared(NUM_MAX, NUM_MIN); + cloudServiceImpl->OnBind( + { "CloudServiceStubFuzz", static_cast(IPCSkeleton::GetSelfTokenID()), std::move(executor) }); + AllocAndSetHapToken(); + }); uint32_t code = provider.ConsumeIntegralInRange(CODE_MIN, CODE_MAX); std::vector remainingData = provider.ConsumeRemainingBytes();