diff --git a/test/fuzztest/security_component/service/preregisterseccompprocessstub_fuzzer/preregisterseccompprocessstub_fuzz.cpp b/test/fuzztest/security_component/service/preregisterseccompprocessstub_fuzzer/preregisterseccompprocessstub_fuzz.cpp index 2d8d68b257689119fb232b5a93f7a11d9fb3594a..db6d055484d48b42e077e7745f5d755fc6ecca37 100644 --- a/test/fuzztest/security_component/service/preregisterseccompprocessstub_fuzzer/preregisterseccompprocessstub_fuzz.cpp +++ b/test/fuzztest/security_component/service/preregisterseccompprocessstub_fuzzer/preregisterseccompprocessstub_fuzz.cpp @@ -43,6 +43,7 @@ static void PreRegisterSecCompProcessStubFuzzTest(const uint8_t *data, size_t si if (!input.WriteInterfaceToken(ISecCompService::GetDescriptor())) { return; } + rawData.WriteUint32(1); SecCompEnhanceAdapter::EnhanceClientSerialize(rawData, inputData); input.WriteUint32(inputData.size); input.WriteRawData(inputData.data, inputData.size); @@ -50,6 +51,8 @@ static void PreRegisterSecCompProcessStubFuzzTest(const uint8_t *data, size_t si auto service = std::make_shared(SA_ID_SECURITY_COMPONENT_SERVICE, true); service->OnRemoteRequest(code, input, reply, option); + service->OnStart(); + service->OnStop(); } } // namespace OHOS diff --git a/test/fuzztest/security_component/service/unregistersecuritycomponentstub_fuzzer/unregistersecuritycomponentstub_fuzzer.cpp b/test/fuzztest/security_component/service/unregistersecuritycomponentstub_fuzzer/unregistersecuritycomponentstub_fuzzer.cpp index 4d307c8d750373325e9b7ad2dd838c35321e31ea..e61c0852ccb0f39dce8180e5843c6a40908fb01a 100644 --- a/test/fuzztest/security_component/service/unregistersecuritycomponentstub_fuzzer/unregistersecuritycomponentstub_fuzzer.cpp +++ b/test/fuzztest/security_component/service/unregistersecuritycomponentstub_fuzzer/unregistersecuritycomponentstub_fuzzer.cpp @@ -22,7 +22,9 @@ #include "isec_comp_service.h" #include "sec_comp_enhance_adapter.h" #include "sec_comp_info.h" +#define private public #include "sec_comp_service.h" +#undef private #include "securec.h" #include "token_setproc.h" #include "unregistersecuritycomponentstub_fuzzer.h" @@ -30,56 +32,6 @@ using namespace OHOS::Security::SecurityComponent; using namespace OHOS::Security::AccessToken; namespace OHOS { -static int32_t RegisterSecurityComponentStub(uint32_t type, const std::string& compoInfo) -{ - uint32_t code = - static_cast(ISecCompServiceIpcCode::COMMAND_REGISTER_SECURITY_COMPONENT); - MessageParcel rawData; - MessageParcel input; - SecCompRawdata inputData; - MessageParcel reply; - SecCompRawdata replyData; - - if (!input.WriteInterfaceToken(ISecCompService::GetDescriptor())) { - return 0; - } - if (!rawData.WriteUint32(type)) { - return 0; - } - - if (!rawData.WriteString(compoInfo)) { - return 0; - } - SecCompEnhanceAdapter::EnhanceClientSerialize(rawData, inputData); - input.WriteUint32(inputData.size); - input.WriteRawData(inputData.data, inputData.size); - MessageOption option(MessageOption::TF_SYNC); - auto service = - std::make_shared(SA_ID_SECURITY_COMPONENT_SERVICE, true); - service->OnRemoteRequest(code, input, reply, option); - if (!reply.ReadUint32(replyData.size)) { - return 0; - } - auto readRawReply = reply.ReadRawData(replyData.size); - if (readRawReply == nullptr) { - return 0; - } - int32_t res = replyData.RawDataCpy(readRawReply); - if (res != SC_OK) { - return 0; - } - MessageParcel deserializedReply; - SecCompEnhanceAdapter::EnhanceClientDeserialize(replyData, deserializedReply); - if (!deserializedReply.ReadInt32(res)) { - return 0; - } - int32_t scId = 0; - if (!deserializedReply.ReadInt32(scId)) { - return 0; - } - return scId; -} - static void UnregisterSecurityComponentStubFuzzTest(const uint8_t *data, size_t size) { uint32_t code = static_cast(ISecCompServiceIpcCode::COMMAND_UNREGISTER_SECURITY_COMPONENT); @@ -90,7 +42,12 @@ static void UnregisterSecurityComponentStubFuzzTest(const uint8_t *data, size_t CompoRandomGenerator generator(data, size); uint32_t type = generator.GetScType(); std::string compoInfo = generator.GenerateRandomCompoStr(type); - int32_t scId = RegisterSecurityComponentStub(type, compoInfo); + auto service = std::make_shared(SA_ID_SECURITY_COMPONENT_SERVICE, true); + int32_t scId; + int32_t res = service->RegisterSecurityComponentBody(static_cast(type), compoInfo, scId); + if (res != SC_OK) { + return; + } if (!input.WriteInterfaceToken(ISecCompService::GetDescriptor())) { return; } @@ -102,7 +59,6 @@ static void UnregisterSecurityComponentStubFuzzTest(const uint8_t *data, size_t input.WriteRawData(inputData.data, inputData.size); MessageOption option(MessageOption::TF_SYNC); - auto service = std::make_shared(SA_ID_SECURITY_COMPONENT_SERVICE, true); service->OnRemoteRequest(code, input, reply, option); } } // namespace OHOS diff --git a/test/fuzztest/security_component/service/updatesecuritycomponentstub_fuzzer/updatesecuritycomponentstub_fuzzer.cpp b/test/fuzztest/security_component/service/updatesecuritycomponentstub_fuzzer/updatesecuritycomponentstub_fuzzer.cpp index 29637ce8964864a73b88b8c9207864e6f044e225..512f5a0e4cd66186bb2402d295b5a3d64e35fb43 100644 --- a/test/fuzztest/security_component/service/updatesecuritycomponentstub_fuzzer/updatesecuritycomponentstub_fuzzer.cpp +++ b/test/fuzztest/security_component/service/updatesecuritycomponentstub_fuzzer/updatesecuritycomponentstub_fuzzer.cpp @@ -22,7 +22,9 @@ #include "isec_comp_service.h" #include "sec_comp_enhance_adapter.h" #include "sec_comp_info.h" +#define private public #include "sec_comp_service.h" +#undef private #include "securec.h" #include "token_setproc.h" #include "updatesecuritycomponentstub_fuzzer.h" @@ -30,56 +32,6 @@ using namespace OHOS::Security::SecurityComponent; using namespace OHOS::Security::AccessToken; namespace OHOS { -static int32_t RegisterSecurityComponentStub(uint32_t type, const std::string& compoInfo) -{ - uint32_t code = - static_cast(ISecCompServiceIpcCode::COMMAND_REGISTER_SECURITY_COMPONENT); - MessageParcel rawData; - MessageParcel input; - SecCompRawdata inputData; - MessageParcel reply; - SecCompRawdata replyData; - - if (!input.WriteInterfaceToken(ISecCompService::GetDescriptor())) { - return 0; - } - if (!rawData.WriteUint32(type)) { - return 0; - } - - if (!rawData.WriteString(compoInfo)) { - return 0; - } - SecCompEnhanceAdapter::EnhanceClientSerialize(rawData, inputData); - input.WriteUint32(inputData.size); - input.WriteRawData(inputData.data, inputData.size); - MessageOption option(MessageOption::TF_SYNC); - auto service = - std::make_shared(SA_ID_SECURITY_COMPONENT_SERVICE, true); - service->OnRemoteRequest(code, input, reply, option); - if (!reply.ReadUint32(replyData.size)) { - return 0; - } - auto readRawReply = reply.ReadRawData(replyData.size); - if (readRawReply == nullptr) { - return 0; - } - int32_t res = replyData.RawDataCpy(readRawReply); - if (res != SC_OK) { - return 0; - } - MessageParcel deserializedReply; - SecCompEnhanceAdapter::EnhanceClientDeserialize(replyData, deserializedReply); - if (!deserializedReply.ReadInt32(res)) { - return 0; - } - int32_t scId = 0; - if (!deserializedReply.ReadInt32(scId)) { - return 0; - } - return scId; -} - static void UpdateSecurityComponentStubFuzzTest(const uint8_t *data, size_t size) { uint32_t code = static_cast(ISecCompServiceIpcCode::COMMAND_UPDATE_SECURITY_COMPONENT); @@ -94,7 +46,12 @@ static void UpdateSecurityComponentStubFuzzTest(const uint8_t *data, size_t size uint32_t type = generator.GetScType(); std::string compoInfo = generator.GenerateRandomCompoStr(type); - int32_t scId = RegisterSecurityComponentStub(type, compoInfo); + auto service = std::make_shared(SA_ID_SECURITY_COMPONENT_SERVICE, true); + int32_t scId; + int32_t res = service->RegisterSecurityComponentBody(static_cast(type), compoInfo, scId); + if (res != SC_OK) { + return; + } if (!rawData.WriteInt32(scId)) { return; } @@ -106,7 +63,6 @@ static void UpdateSecurityComponentStubFuzzTest(const uint8_t *data, size_t size input.WriteRawData(inputData.data, inputData.size); MessageOption option(MessageOption::TF_SYNC); - auto service = std::make_shared(SA_ID_SECURITY_COMPONENT_SERVICE, true); service->OnRemoteRequest(code, input, reply, option); } } // namespace OHOS