1 /*
2 * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <string>
17 #include <cstdlib>
18 #include <random>
19 #include <utility>
20 #include <vector>
21 #include <fuzzer/FuzzedDataProvider.h>
22
23 #include "device_manager_service_listener.h"
24 #include "dm_anonymous.h"
25 #include "dm_auth_manager.h"
26 #include "dm_constants.h"
27 #include "hichain_connector.h"
28
29 #include "hichain_connector_fuzzer.h"
30
31 namespace OHOS {
32 namespace DistributedHardware {
33 constexpr const char* FIELD_OPERATION_CODE = "operationCode";
34 constexpr const char* FIELD_META_NODE_TYPE = "metaNodeType";
35 constexpr const char* FIELD_TYPE = "TType";
36
37 class HiChainConnectorCallbackTest : public IHiChainConnectorCallback {
38 public:
HiChainConnectorCallbackTest()39 HiChainConnectorCallbackTest() {}
~HiChainConnectorCallbackTest()40 virtual ~HiChainConnectorCallbackTest() {}
OnGroupCreated(int64_t requestId,const std::string & groupId)41 void OnGroupCreated(int64_t requestId, const std::string &groupId) override
42 {
43 (void)requestId;
44 (void)groupId;
45 }
OnMemberJoin(int64_t requestId,int32_t status,int32_t operationCode)46 void OnMemberJoin(int64_t requestId, int32_t status, int32_t operationCode) override
47 {
48 (void)requestId;
49 (void)status;
50 (void)operationCode;
51 }
GetConnectAddr(std::string deviceId)52 std::string GetConnectAddr(std::string deviceId) override
53 {
54 (void)deviceId;
55 return "";
56 }
GetPinCode(std::string & code)57 int32_t GetPinCode(std::string &code) override
58 {
59 (void)code;
60 return DM_OK;
61 }
62 };
63
AddGroupInfo(std::vector<GroupInfo> & groupList)64 void AddGroupInfo(std::vector<GroupInfo> &groupList)
65 {
66 GroupInfo groupInfo1;
67 groupInfo1.groupId = "234";
68 groupInfo1.groupType = GROUP_TYPE_IDENTICAL_ACCOUNT_GROUP;
69 groupList.push_back(groupInfo1);
70 GroupInfo groupInfo2;
71 groupInfo2.groupId = "1485";
72 groupInfo2.groupOwner = DM_PKG_NAME;
73 groupList.push_back(groupInfo2);
74 }
75
GenerateJsonObject(JsonObject & jsonObject,FuzzedDataProvider & fdp)76 void GenerateJsonObject(JsonObject &jsonObject, FuzzedDataProvider &fdp)
77 {
78 jsonObject[FIELD_GROUP_NAME] = fdp.ConsumeRandomLengthString();
79 jsonObject[FIELD_GROUP_ID] = fdp.ConsumeRandomLengthString();
80 jsonObject[FIELD_GROUP_OWNER] = fdp.ConsumeRandomLengthString();
81 jsonObject[FIELD_GROUP_TYPE] = fdp.ConsumeIntegral<int32_t>();
82 jsonObject[FIELD_GROUP_VISIBILITY] = fdp.ConsumeIntegral<int32_t>();
83 jsonObject[FIELD_USER_ID] = fdp.ConsumeRandomLengthString();
84 }
85
AddAclInfo(std::vector<std::pair<int32_t,std::string>> & delACLInfoVec,std::vector<int32_t> & userIdVec)86 void AddAclInfo(std::vector<std::pair<int32_t, std::string>> &delACLInfoVec, std::vector<int32_t> &userIdVec)
87 {
88 int32_t key = 12;
89 std::string value = "acl_info1";
90 delACLInfoVec.push_back(std::make_pair(key, value));
91 userIdVec.push_back(key);
92 int32_t key1 = 23;
93 value = "acl_info2";
94 delACLInfoVec.push_back(std::make_pair(key1, value));
95 userIdVec.push_back(key);
96 int32_t key2 = 25;
97 value = "acl_info3";
98 delACLInfoVec.push_back(std::make_pair(key2, value));
99 userIdVec.push_back(key);
100 }
101
HiChainConnectorFuzzTest(const uint8_t * data,size_t size)102 void HiChainConnectorFuzzTest(const uint8_t* data, size_t size)
103 {
104 if ((data == nullptr) || (size < (sizeof(int32_t) + sizeof(int32_t) + sizeof(int32_t)))) {
105 return;
106 }
107
108 std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
109 hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
110
111 FuzzedDataProvider fdp(data, size);
112 std::string userId(reinterpret_cast<const char*>(data), size);
113 int32_t authType = fdp.ConsumeIntegral<int32_t>();
114 std::vector<GroupInfo> groupList;
115 std::string queryParams(reinterpret_cast<const char*>(data), size);
116 std::string deviceId(reinterpret_cast<const char*>(data), size);
117 std::string reqDeviceId(reinterpret_cast<const char*>(data), size);
118 std::string hostDevice(reinterpret_cast<const char*>(data), size);
119 std::vector<std::string> remoteGroupIdList;
120 int32_t groupType = fdp.ConsumeIntegral<int32_t>();
121 JsonObject jsonDeviceList;
122 std::string groupOwner(reinterpret_cast<const char*>(data), size);
123 std::string credentialInfo(reinterpret_cast<const char*>(data), size);
124 std::string jsonStr(reinterpret_cast<const char*>(data), size);
125 std::vector<std::string> udidList;
126 std::string pkgNameStr(reinterpret_cast<const char*>(data), size);
127 int32_t delUserid = fdp.ConsumeIntegral<int32_t>();
128
129 hichainConnector->IsRedundanceGroup(userId, authType, groupList);
130 hichainConnector->GetGroupInfo(queryParams, groupList);
131 hichainConnector->GetGroupInfo(delUserid, queryParams, groupList);
132 hichainConnector->GetGroupType(deviceId);
133 hichainConnector->AddMember(deviceId, queryParams);
134 hichainConnector->GetConnectPara(deviceId, reqDeviceId);
135 hichainConnector->IsDevicesInP2PGroup(hostDevice, reqDeviceId);
136 hichainConnector->SyncGroups(deviceId, remoteGroupIdList);
137 hichainConnector->DeleteTimeOutGroup(deviceId.data());
138 hichainConnector->getRegisterInfo(queryParams, jsonStr);
139 hichainConnector->GetGroupId(userId, groupType, queryParams);
140 hichainConnector->addMultiMembers(groupType, userId, jsonDeviceList);
141 hichainConnector->GetGroupIdExt(userId, groupType, queryParams, groupOwner);
142 hichainConnector->ParseRemoteCredentialExt(credentialInfo, queryParams, groupOwner);
143 hichainConnector->addMultiMembersExt(credentialInfo);
144 hichainConnector->GetTrustedDevices(deviceId);
145 hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
146 hichainConnector->DeleteAllGroup(delUserid);
147 hichainConnector->GetRelatedGroupsCommon(deviceId, pkgNameStr.data(), groupList);
148 hichainConnector->UnRegisterHiChainCallback();
149 }
150
HiChainConnectorSecondFuzzTest(const uint8_t * data,size_t size)151 void HiChainConnectorSecondFuzzTest(const uint8_t* data, size_t size)
152 {
153 std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
154 hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
155
156 std::vector<GroupInfo> groupList;
157 JsonObject jsonDeviceList;
158 GroupInfo groupInfo;
159 std::vector<std::string> syncGroupList;
160 hichainConnector->GetSyncGroupList(groupList, syncGroupList);
161 hichainConnector->IsGroupInfoInvalid(groupInfo);
162 hichainConnector->UnRegisterHiChainGroupCallback();
163 hichainConnector->GetJsonStr(jsonDeviceList, "key");
164 }
165
HiChainConnectorThirdFuzzTest(const uint8_t * data,size_t size)166 void HiChainConnectorThirdFuzzTest(const uint8_t* data, size_t size)
167 {
168 if ((data == nullptr) || (size < (sizeof(int64_t) + sizeof(int32_t) + sizeof(int32_t) + sizeof(int32_t)))) {
169 return;
170 }
171 FuzzedDataProvider fdp(data, size);
172 std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
173 hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
174 int64_t requestId = fdp.ConsumeIntegral<int64_t>();
175 std::string groupName = "groupName";
176 GroupInfo groupInfo;
177 std::string userId(reinterpret_cast<const char*>(data), size);
178 int32_t authType = fdp.ConsumeIntegral<int32_t>();
179 std::vector<GroupInfo> groupList;
180 std::string queryParams(reinterpret_cast<const char*>(data), size);
181 std::string pkgName(reinterpret_cast<const char*>(data), size);
182 std::string deviceId(reinterpret_cast<const char*>(data), size);
183 std::string reqDeviceId(reinterpret_cast<const char*>(data), size);
184 JsonObject jsonOutObj;
185 std::shared_ptr<IDmGroupResCallback> callback;
186 std::string jsonStr(reinterpret_cast<const char*>(data), size);
187 int32_t groupType = fdp.ConsumeIntegral<int32_t>();
188 std::string reqParams(reinterpret_cast<const char*>(data), size);
189 std::string credentialInfo(reinterpret_cast<const char*>(data), size);
190 hichainConnector->deviceGroupManager_ = nullptr;
191 hichainConnector->AddMember(deviceId, queryParams);
192 hichainConnector->getRegisterInfo(queryParams, jsonStr);
193 hichainConnector->addMultiMembers(groupType, userId, jsonOutObj);
194 hichainConnector->addMultiMembersExt(credentialInfo);
195 hichainConnector->deleteMultiMembers(groupType, userId, jsonOutObj);
196 hichainConnector->GetGroupInfoCommon(authType, queryParams, pkgName.c_str(), groupList);
197 hichainConnector->hiChainConnectorCallback_ = nullptr;
198 hichainConnector->GetConnectPara(deviceId, reqDeviceId);
199 char *ret = hichainConnector->onRequest(requestId, GroupOperationCode::MEMBER_JOIN, reqParams.c_str());
200 if (ret != nullptr) {
201 free(ret);
202 ret = nullptr;
203 }
204 hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
205 if (hichainConnector->deviceGroupManager_ == nullptr) {
206 hichainConnector->deviceGroupManager_ = GetGmInstance();
207 }
208 hichainConnector->IsGroupCreated(groupName, groupInfo);
209 hichainConnector->GetGroupInfoExt(authType, queryParams, groupList);
210 hichainConnector->GetGroupInfoCommon(authType, queryParams, pkgName.c_str(), groupList);
211 hichainConnector->RegisterHiChainGroupCallback(callback);
212 hichainConnector->GetJsonInt(jsonOutObj, "key");
213 hichainConnector->deleteMultiMembers(groupType, userId, jsonOutObj);
214 hichainConnector->DeleteAllGroupByUdid(reqParams);
215 }
216
HiChainConnectorForthFuzzTest(const uint8_t * data,size_t size)217 void HiChainConnectorForthFuzzTest(const uint8_t* data, size_t size)
218 {
219 if ((data == nullptr) || (size < sizeof(int64_t) + sizeof(int32_t))) {
220 return;
221 }
222
223 std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
224 hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
225 FuzzedDataProvider fdp(data, size);
226 int64_t requestId = fdp.ConsumeIntegral<int64_t>();
227 std::string groupName(reinterpret_cast<const char*>(data), size);
228 std::string groupId = "groupId_forth";
229 std::string deviceId = "deviceId_forth";
230 std::string returnData(reinterpret_cast<const char*>(data), size);
231 std::string userId = "userId_forth";
232 int32_t authType = fdp.ConsumeIntegral<int32_t>();
233 int errCode = 102;
234 std::vector<std::string> syncGroupList;
235 std::vector<std::pair<int32_t, std::string>> delACLInfoVec;
236 std::vector<int32_t> userIdVec;
237 hichainConnector->DeleteGroupByACL(delACLInfoVec, userIdVec);
238 std::vector<GroupInfo> groupList;
239 AddGroupInfo(groupList);
240 AddAclInfo(delACLInfoVec, userIdVec);
241 hichainConnector->DeleteGroup(groupId);
242 hichainConnector->DeleteGroupExt(groupId);
243 hichainConnector->DeleteGroup(authType, groupId);
244 hichainConnector->DeleteGroup(requestId, userId, authType);
245 hichainConnector->DelMemberFromGroup(groupId, deviceId);
246 hichainConnector->DeleteRedundanceGroup(userId);
247 hichainConnector->DealRedundanceGroup(userId, authType);
248 hichainConnector->DeleteGroupByACL(delACLInfoVec, userIdVec);
249 hichainConnector->IsNeedDelete(groupName, authType, delACLInfoVec);
250 hichainConnector->onFinish(requestId, GroupOperationCode::MEMBER_JOIN, returnData.c_str());
251 hichainConnector->onError(requestId, GroupOperationCode::MEMBER_JOIN, errCode, returnData.c_str());
252 char *ret = hichainConnector->onRequest(requestId, GroupOperationCode::MEMBER_JOIN, returnData.c_str());
253 if (ret != nullptr) {
254 free(ret);
255 ret = nullptr;
256 }
257 hichainConnector->onFinish(requestId, GroupOperationCode::GROUP_CREATE, returnData.c_str());
258 hichainConnector->onError(requestId, GroupOperationCode::GROUP_CREATE, errCode, returnData.c_str());
259 hichainConnector->onFinish(requestId, GroupOperationCode::MEMBER_DELETE, returnData.c_str());
260 hichainConnector->onError(requestId, GroupOperationCode::MEMBER_DELETE, errCode, returnData.c_str());
261 hichainConnector->onFinish(requestId, GroupOperationCode::GROUP_DISBAND, returnData.c_str());
262 hichainConnector->onError(requestId, GroupOperationCode::GROUP_DISBAND, errCode, returnData.c_str());
263 hichainConnector->GenRequestId();
264 hichainConnector->GetRelatedGroups(deviceId, groupList);
265 hichainConnector->GetRelatedGroupsExt(deviceId, groupList);
266 hichainConnector->GetSyncGroupList(groupList, syncGroupList);
267 hichainConnector->GetGroupId(userId, authType, userId);
268 }
269
HiChainConnectorFifthFuzzTest(const uint8_t * data,size_t size)270 void HiChainConnectorFifthFuzzTest(const uint8_t* data, size_t size)
271 {
272 if ((data == nullptr) || (size < sizeof(int64_t) + sizeof(int32_t) + sizeof(int32_t))) {
273 return;
274 }
275
276 std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
277 hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
278 FuzzedDataProvider fdp(data, size);
279 int64_t requestId = fdp.ConsumeIntegral<int64_t>();
280 std::string groupName = "groupName_fifth";
281 int32_t authType = fdp.ConsumeIntegral<int32_t>();
282 std::string params = "params";
283 int32_t osAccountUserId = fdp.ConsumeIntegral<int32_t>();
284 JsonObject jsonDeviceList;
285 std::vector<std::pair<int32_t, std::string>> delACLInfoVec;
286 std::vector<int32_t> userIdVec;
287 std::vector<std::pair<int32_t, std::string>> delAclInfoVec1;
288 std::string jsonStr = R"({"content": {"deviceid": "123"}}, authId: "123456"))";
289 std::vector<std::string> udidList;
290 int32_t key = 12;
291 std::string value = "acl_info1";
292 std::string credentialInfo = R"({"content": {"deviceid": "123"}}, authId: "123456"))";
293 std::string groupOwner(reinterpret_cast<const char*>(data), size);
294 delAclInfoVec1.push_back(std::make_pair(key, value));
295 JsonObject jsonObj;
296 jsonObj[AUTH_TYPE] = 1;
297 jsonObj[FIELD_USER_ID] = "123456";
298 jsonObj[FIELD_CREDENTIAL_TYPE] = 1;
299 jsonObj[FIELD_OPERATION_CODE] = 1;
300 jsonObj[FIELD_TYPE] = "filed_type";
301 jsonObj[FIELD_DEVICE_LIST] = "device_list";
302 hichainConnector->deviceGroupManager_ = nullptr;
303 hichainConnector->CreateGroup(requestId, groupName);
304 hichainConnector->CreateGroup(requestId, authType, groupName, jsonDeviceList);
305 if (hichainConnector->deviceGroupManager_ == nullptr) {
306 hichainConnector->deviceGroupManager_ = GetGmInstance();
307 }
308 hichainConnector->CreateGroup(requestId, groupName);
309 hichainConnector->CreateGroup(requestId, authType, groupName, jsonDeviceList);
310 hichainConnector->ParseRemoteCredential(authType, groupName, jsonDeviceList, params, osAccountUserId);
311 hichainConnector->ParseRemoteCredential(authType, "", jsonDeviceList, params, osAccountUserId);
312 hichainConnector->IsNeedDelete(groupName, authType, delACLInfoVec);
313 hichainConnector->DeleteGroupByACL(delAclInfoVec1, userIdVec);
314 hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
315 jsonStr = R"({"content": {"deviceid": "123"}}, authId: "123456")";
316 hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
317 jsonStr = R"({"content": {"deviceid": "123"}}, localId: "123456")";
318 hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
319 }
320
HiChainConnectorSixthFuzzTest(const uint8_t * data,size_t size)321 void HiChainConnectorSixthFuzzTest(const uint8_t* data, size_t size)
322 {
323 if ((data == nullptr) || (size < sizeof(int32_t))) {
324 return;
325 }
326
327 std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
328 hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
329 std::string groupOwner(reinterpret_cast<const char*>(data), size);
330 JsonObject jsonObj;
331 std::string deviceId = "deviceId";
332 std::string key = "localDeviceId";
333 jsonObj["deviceId"] = 1;
334 hichainConnector->GetJsonInt(jsonObj, key);
335 hichainConnector->GetJsonInt(jsonObj, key);
336 jsonObj[key] = 1;
337 jsonObj["deviceName"] = "devieName1";
338 hichainConnector->GetJsonInt(jsonObj, "devieName");
339 hichainConnector->AddMember(deviceId, jsonObj.Dump());
340 jsonObj[TAG_DEVICE_ID] = "deviceId_001";
341 jsonObj[PIN_CODE_KEY] = 1;
342 jsonObj[TAG_GROUP_ID] = "groupId";
343 jsonObj[TAG_REQUEST_ID] = 1;
344 jsonObj[TAG_GROUP_NAME] = "groupName";
345 hichainConnector->AddMember(deviceId, jsonObj.Dump());
346
347 JsonObject jsonObjCre;
348 std::string params;
349 jsonObjCre[AUTH_TYPE] = 1;
350 jsonObjCre["userId"] = "user_001";
351 jsonObjCre[FIELD_CREDENTIAL_TYPE] = 1;
352 jsonObjCre[FIELD_OPERATION_CODE] = 1;
353 jsonObjCre[FIELD_META_NODE_TYPE] = "metaNode_002";
354 jsonObjCre[FIELD_DEVICE_LIST] = "deviceList";
355 std::string credentialInfo = jsonObjCre.Dump();
356 hichainConnector->ParseRemoteCredentialExt(credentialInfo, params, groupOwner);
357 int32_t groupType = *(reinterpret_cast<const int32_t*>(data));
358 JsonObject jsonDeviceList;
359 int32_t osAccountUserId = 0;
360 std::string userId = "user_002";
361 std::vector<std::string> fieldDeviceList = {"deviceList"};
362 jsonDeviceList[FIELD_DEVICE_LIST] = fieldDeviceList;
363 hichainConnector->ParseRemoteCredential(groupType, userId, jsonDeviceList, params, osAccountUserId);
364 FuzzedDataProvider fdp(data, size);
365 int32_t userIdInt = fdp.ConsumeIntegral<int32_t>();
366 std::string groupId = fdp.ConsumeRandomLengthString();
367 hichainConnector->DeleteGroupExt(userIdInt, groupId);
368 GroupInfo groupInfo;
369 GenerateJsonObject(jsonObj, fdp);
370 FromJson(jsonObj, groupInfo);
371 }
372
HiChainConnectorSevenhFuzzTest(const uint8_t * data,size_t size)373 void HiChainConnectorSevenhFuzzTest(const uint8_t* data, size_t size)
374 {
375 if ((data == nullptr) || (size < sizeof(int32_t) + sizeof(int32_t))) {
376 return;
377 }
378
379 std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
380 hichainConnector->RegisterHiChainCallback(std::make_shared<HiChainConnectorCallbackTest>());
381 std::vector<std::pair<int32_t, std::string>> delACLInfoVec;
382 delACLInfoVec.push_back(std::make_pair(1, "aclinfo_001"));
383 std::vector<int32_t> userIdVec;
384 hichainConnector->DeleteGroupByACL(delACLInfoVec, userIdVec);
385 std::string groupName = "";
386 FuzzedDataProvider fdp(data, size);
387 int32_t userId = fdp.ConsumeIntegral<int32_t>();
388 hichainConnector->IsNeedDelete(groupName, userId, delACLInfoVec);
389 userId = 1;
390 groupName = "aclinfo_001";
391 hichainConnector->IsNeedDelete(groupName, userId, delACLInfoVec);
392 std::vector<std::string> udidList;
393 JsonObject jsonObject;
394 std::string jsonStr = "dkocosdpa";
395 hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
396 jsonObject["authId"] = 1;
397 jsonStr = jsonObject.Dump();
398 hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
399
400 jsonObject["authId"] = "authInfoId";
401 jsonStr = jsonObject.Dump();
402 hichainConnector->GetTrustedDevicesUdid(jsonStr.data(), udidList);
403 hichainConnector->deviceGroupManager_ = nullptr;
404 int32_t groupType = fdp.ConsumeIntegral<int32_t>();
405 std::string usersId(reinterpret_cast<const char*>(data), size);
406 JsonObject jsonDeviceList;
407 hichainConnector->deleteMultiMembers(groupType, usersId, jsonDeviceList);
408 }
409
GetGroupInfoExtFuzzTest(const uint8_t * data,size_t size)410 void GetGroupInfoExtFuzzTest(const uint8_t* data, size_t size)
411 {
412 if ((data == nullptr) || (size < sizeof(int32_t))) {
413 return;
414 }
415 FuzzedDataProvider fdp(data, size);
416
417 int32_t userId = fdp.ConsumeIntegral<int32_t>();
418 int32_t maxStringLength = 64;
419 std::string queryParams = fdp.ConsumeRandomLengthString(maxStringLength);
420 std::vector<GroupInfo> groupList;
421
422 std::shared_ptr<HiChainConnector> hichainConnector = std::make_shared<HiChainConnector>();
423 hichainConnector->GetGroupInfoExt(userId, queryParams, groupList);
424 }
425 }
426 }
427
428 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)429 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
430 {
431 /* Run your code on data */
432 OHOS::DistributedHardware::HiChainConnectorFuzzTest(data, size);
433 OHOS::DistributedHardware::HiChainConnectorSecondFuzzTest(data, size);
434 OHOS::DistributedHardware::HiChainConnectorThirdFuzzTest(data, size);
435 OHOS::DistributedHardware::HiChainConnectorForthFuzzTest(data, size);
436 OHOS::DistributedHardware::HiChainConnectorFifthFuzzTest(data, size);
437 OHOS::DistributedHardware::HiChainConnectorSixthFuzzTest(data, size);
438 OHOS::DistributedHardware::HiChainConnectorSevenhFuzzTest(data, size);
439 OHOS::DistributedHardware::GetGroupInfoExtFuzzTest(data, size);
440 return 0;
441 }