From 9ae07e74ffc1e79176747184313b5d6f7ca702c4 Mon Sep 17 00:00:00 2001 From: wanxiaoqing Date: Wed, 7 May 2025 15:12:09 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=96=E7=A0=81=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wanxiaoqing --- .../udmfservice_fuzzer/udmfservice_fuzzer.cpp | 42 +++++++++++++------ .../service/udmf/udmf_service_stub.cpp | 4 +- .../service/udmf/udmf_service_stub.h | 2 +- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/services/distributeddataservice/service/test/fuzztest/udmfservice_fuzzer/udmfservice_fuzzer.cpp b/services/distributeddataservice/service/test/fuzztest/udmfservice_fuzzer/udmfservice_fuzzer.cpp index 1d5b03a1a..868c4ca43 100644 --- a/services/distributeddataservice/service/test/fuzztest/udmfservice_fuzzer/udmfservice_fuzzer.cpp +++ b/services/distributeddataservice/service/test/fuzztest/udmfservice_fuzzer/udmfservice_fuzzer.cpp @@ -61,11 +61,12 @@ bool OnRemoteRequestFuzz(const uint8_t* data, size_t size) uint32_t code = static_cast(*data) % (CODE_MAX - CODE_MIN + 1) + CODE_MIN; MessageParcel request; + MessageOption option; request.WriteInterfaceToken(INTERFACE_TOKEN); request.WriteBuffer(data, size); request.RewindRead(0); MessageParcel reply; - udmfServiceImpl->OnRemoteRequest(code, request, reply); + udmfServiceImpl->OnRemoteRequest(code, request, reply, option); return true; } @@ -85,10 +86,12 @@ void SetDataFuzz(const uint8_t *data, size_t size) auto record = std::make_shared(FILE_URI, obj); data1.AddRecord(record); MessageParcel request; + MessageOption option; request.WriteInterfaceToken(INTERFACE_TOKEN); ITypesUtil::Marshal(request, option1, data1); MessageParcel reply; - udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::SET_DATA), request, reply); + udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::SET_DATA), request, reply, + option); } void GetDataFuzz(const uint8_t *data, size_t size) @@ -99,10 +102,12 @@ void GetDataFuzz(const uint8_t *data, size_t size) { "UdmfServiceStubFuzz", static_cast(IPCSkeleton::GetSelfTokenID()), std::move(executor) }); QueryOption query = GenerateFuzzQueryOption(data, size); MessageParcel request; + MessageOption option; request.WriteInterfaceToken(INTERFACE_TOKEN); ITypesUtil::Marshal(request, query); MessageParcel reply; - udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::GET_DATA), request, reply); + udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::GET_DATA), request, reply, + option); } void GetBatchDataFuzz(const uint8_t *data, size_t size) @@ -113,10 +118,12 @@ void GetBatchDataFuzz(const uint8_t *data, size_t size) { "UdmfServiceStubFuzz", static_cast(IPCSkeleton::GetSelfTokenID()), std::move(executor) }); QueryOption query = GenerateFuzzQueryOption(data, size); MessageParcel request; + MessageOption option; request.WriteInterfaceToken(INTERFACE_TOKEN); ITypesUtil::Marshal(request, query); MessageParcel reply; - udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::GET_BATCH_DATA), request, reply); + udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::GET_BATCH_DATA), request, reply, + option); } void UpdateDataFuzz(const uint8_t *data, size_t size) @@ -135,10 +142,12 @@ void UpdateDataFuzz(const uint8_t *data, size_t size) auto record = std::make_shared(FILE_URI, obj); data1.AddRecord(record); MessageParcel request; + MessageOption option; request.WriteInterfaceToken(INTERFACE_TOKEN); ITypesUtil::Marshal(request, query, data1); MessageParcel reply; - udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::UPDATE_DATA), request, reply); + udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::UPDATE_DATA), request, reply, + option); } void DeleteDataFuzz(const uint8_t *data, size_t size) @@ -149,10 +158,12 @@ void DeleteDataFuzz(const uint8_t *data, size_t size) { "UdmfServiceStubFuzz", static_cast(IPCSkeleton::GetSelfTokenID()), std::move(executor) }); QueryOption query = GenerateFuzzQueryOption(data, size); MessageParcel request; + MessageOption option; request.WriteInterfaceToken(INTERFACE_TOKEN); ITypesUtil::Marshal(request, query); MessageParcel reply; - udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::DELETE_DATA), request, reply); + udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::DELETE_DATA), request, reply, + option); } void GetSummaryFuzz(const uint8_t *data, size_t size) @@ -163,10 +174,12 @@ void GetSummaryFuzz(const uint8_t *data, size_t size) { "UdmfServiceStubFuzz", static_cast(IPCSkeleton::GetSelfTokenID()), std::move(executor) }); QueryOption query = GenerateFuzzQueryOption(data, size); MessageParcel request; + MessageOption option; request.WriteInterfaceToken(INTERFACE_TOKEN); ITypesUtil::Marshal(request, query); MessageParcel reply; - udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::GET_SUMMARY), request, reply); + udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::GET_SUMMARY), request, reply, + option); } void AddPrivilegeDataFuzz(const uint8_t *data, size_t size) @@ -184,11 +197,12 @@ void AddPrivilegeDataFuzz(const uint8_t *data, size_t size) }; MessageParcel request; + MessageOption option; request.WriteInterfaceToken(INTERFACE_TOKEN); ITypesUtil::Marshal(request, query, privilege); MessageParcel replyUpdate; udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::ADD_PRIVILEGE), - request, replyUpdate); + request, replyUpdate, option); } void SyncDataFuzz(const uint8_t *data, size_t size) @@ -200,11 +214,12 @@ void SyncDataFuzz(const uint8_t *data, size_t size) QueryOption query = GenerateFuzzQueryOption(data, size); std::vector devices = { "11", "22" }; MessageParcel requestUpdate; + MessageOption option; requestUpdate.WriteInterfaceToken(INTERFACE_TOKEN); ITypesUtil::Marshal(requestUpdate, query, devices); MessageParcel replyUpdate; udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::SYNC), - requestUpdate, replyUpdate); + requestUpdate, replyUpdate, option); } void IsRemoteDataFuzz(const uint8_t *data, size_t size) @@ -215,11 +230,12 @@ void IsRemoteDataFuzz(const uint8_t *data, size_t size) { "UdmfServiceStubFuzz", static_cast(IPCSkeleton::GetSelfTokenID()), std::move(executor) }); QueryOption query = GenerateFuzzQueryOption(data, size); MessageParcel requestUpdate; + MessageOption option; requestUpdate.WriteInterfaceToken(INTERFACE_TOKEN); ITypesUtil::Marshal(requestUpdate, query); MessageParcel replyUpdate; udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::IS_REMOTE_DATA), - requestUpdate, replyUpdate); + requestUpdate, replyUpdate, option); } void ObtainAsynProcessFuzz(const uint8_t *data, size_t size) @@ -238,11 +254,12 @@ void ObtainAsynProcessFuzz(const uint8_t *data, size_t size) .businessUdKey = businessUdKey, }; MessageParcel requestUpdate; + MessageOption option; requestUpdate.WriteInterfaceToken(INTERFACE_TOKEN); ITypesUtil::Marshal(requestUpdate, processInfo); MessageParcel replyUpdate; udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::OBTAIN_ASYN_PROCESS), - requestUpdate, replyUpdate); + requestUpdate, replyUpdate, option); } void ClearAsynProcessFuzz(const uint8_t *data, size_t size) @@ -258,11 +275,12 @@ void ClearAsynProcessFuzz(const uint8_t *data, size_t size) } std::string businessUdKey(groupId.begin(), groupId.end()); MessageParcel requestUpdate; + MessageOption option; requestUpdate.WriteInterfaceToken(INTERFACE_TOKEN); ITypesUtil::Marshal(requestUpdate, businessUdKey); MessageParcel replyUpdate; udmfServiceImpl->OnRemoteRequest(static_cast(UdmfServiceInterfaceCode::CLEAR_ASYN_PROCESS_BY_KEY), - requestUpdate, replyUpdate); + requestUpdate, replyUpdate, option); } } diff --git a/services/distributeddataservice/service/udmf/udmf_service_stub.cpp b/services/distributeddataservice/service/udmf/udmf_service_stub.cpp index f433413b0..9444b98a6 100644 --- a/services/distributeddataservice/service/udmf/udmf_service_stub.cpp +++ b/services/distributeddataservice/service/udmf/udmf_service_stub.cpp @@ -24,7 +24,7 @@ namespace OHOS { namespace UDMF { constexpr UdmfServiceStub::Handler UdmfServiceStub::HANDLERS[static_cast(UdmfServiceInterfaceCode::CODE_BUTT)]; -int UdmfServiceStub::OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply) +int UdmfServiceStub::OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) { ZLOGI("start##code = %{public}u callingPid:%{public}u callingUid:%{public}u.", code, IPCSkeleton::GetCallingPid(), IPCSkeleton::GetCallingUid()); @@ -37,7 +37,7 @@ int UdmfServiceStub::OnRemoteRequest(uint32_t code, MessageParcel &data, Message } if (static_cast(UdmfServiceInterfaceCode::CODE_HEAD) > code || code >= static_cast(UdmfServiceInterfaceCode::CODE_BUTT)) { - return -1; + return IPCObjectStub::OnRemoteRequest(code, data, reply, option); } return (this->*HANDLERS[code])(data, reply); } diff --git a/services/distributeddataservice/service/udmf/udmf_service_stub.h b/services/distributeddataservice/service/udmf/udmf_service_stub.h index 793a13d99..9576423b4 100644 --- a/services/distributeddataservice/service/udmf/udmf_service_stub.h +++ b/services/distributeddataservice/service/udmf/udmf_service_stub.h @@ -28,7 +28,7 @@ namespace UDMF { */ class UdmfServiceStub : public UdmfService, public DistributedData::FeatureSystem::Feature { public: - int OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply) override; + int OnRemoteRequest(uint32_t code, MessageParcel &data, MessageParcel &reply, MessageOption &option) override; private: int32_t OnSetData(MessageParcel &data, MessageParcel &reply); -- Gitee