1 /*
2 * Copyright (c) 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 #include "ipc_model_codec_fuzzer.h"
16
17 #include <fuzzer/FuzzedDataProvider.h>
18
19 #include "ipc_model_codec.h"
20
21
22 namespace OHOS {
23 namespace DistributedHardware {
24 constexpr size_t MAX_STRING_LENGTH = 64;
DecodeDmDeviceBasicInfoFuzzTest(const uint8_t * data,size_t size)25 void DecodeDmDeviceBasicInfoFuzzTest(const uint8_t* data, size_t size)
26 {
27 size_t requiredSize = sizeof(uint16_t) + MAX_STRING_LENGTH * 4;
28 if ((data == nullptr) || (size < requiredSize)) {
29 return;
30 }
31 FuzzedDataProvider fdp(data, size);
32
33 MessageParcel parcel;
34 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
35 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
36 parcel.WriteUint16(fdp.ConsumeIntegral<uint16_t>());
37 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
38 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
39
40 DmDeviceBasicInfo devInfo;
41 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
42 ipcModelCodec->DecodeDmDeviceBasicInfo(parcel, devInfo);
43 }
44
EncodePeerTargetIdFuzzTest(const uint8_t * data,size_t size)45 void EncodePeerTargetIdFuzzTest(const uint8_t* data, size_t size)
46 {
47 size_t requiredSize = sizeof(uint16_t) + MAX_STRING_LENGTH * 4;
48 if ((data == nullptr) || (size < requiredSize)) {
49 return;
50 }
51 FuzzedDataProvider fdp(data, size);
52
53 PeerTargetId targetId;
54 targetId.deviceId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
55 targetId.brMac = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
56 targetId.bleMac = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
57 targetId.wifiIp = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
58 targetId.wifiPort = fdp.ConsumeIntegral<uint16_t>();
59
60 MessageParcel parcel;
61 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
62 ipcModelCodec->EncodePeerTargetId(targetId, parcel);
63 }
64
DecodePeerTargetIdFuzzTest(const uint8_t * data,size_t size)65 void DecodePeerTargetIdFuzzTest(const uint8_t* data, size_t size)
66 {
67 size_t requiredSize = sizeof(uint16_t) + MAX_STRING_LENGTH * 4;
68 if ((data == nullptr) || (size < requiredSize)) {
69 return;
70 }
71 FuzzedDataProvider fdp(data, size);
72
73 MessageParcel parcel;
74 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
75 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
76 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
77 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
78 parcel.WriteUint16(fdp.ConsumeIntegral<uint16_t>());
79
80 PeerTargetId targetId;
81 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
82 ipcModelCodec->DecodePeerTargetId(parcel, targetId);
83 }
84
EncodeDmAccessCallerFuzzTest(const uint8_t * data,size_t size)85 void EncodeDmAccessCallerFuzzTest(const uint8_t* data, size_t size)
86 {
87 size_t requiredSize = sizeof(int32_t) + sizeof(uint64_t) + MAX_STRING_LENGTH * 4;
88 if ((data == nullptr) || (size < requiredSize)) {
89 return;
90 }
91 FuzzedDataProvider fdp(data, size);
92
93 DmAccessCaller caller;
94 caller.accountId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
95 caller.pkgName = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
96 caller.networkId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
97 caller.userId = fdp.ConsumeIntegral<int32_t>();
98 caller.tokenId = fdp.ConsumeIntegral<uint64_t>();
99 caller.extra = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
100
101 MessageParcel parcel;
102 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
103 ipcModelCodec->EncodeDmAccessCaller(caller, parcel);
104 }
105
EncodeDmAccessCalleeFuzzTest(const uint8_t * data,size_t size)106 void EncodeDmAccessCalleeFuzzTest(const uint8_t* data, size_t size)
107 {
108 size_t requiredSize = sizeof(int32_t) + sizeof(uint64_t) + MAX_STRING_LENGTH * 5;
109 if ((data == nullptr) || (size < requiredSize)) {
110 return;
111 }
112 FuzzedDataProvider fdp(data, size);
113
114 DmAccessCallee callee;
115 callee.accountId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
116 callee.networkId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
117 callee.peerId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
118 callee.pkgName = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
119 callee.userId = fdp.ConsumeIntegral<int32_t>();
120 callee.extra = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
121 callee.tokenId = fdp.ConsumeIntegral<uint64_t>();
122
123 MessageParcel parcel;
124 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
125 ipcModelCodec->EncodeDmAccessCallee(callee, parcel);
126 }
127
DecodeDmDeviceProfileInfoFilterOptionsFuzzTest(const uint8_t * data,size_t size)128 void DecodeDmDeviceProfileInfoFilterOptionsFuzzTest(const uint8_t* data, size_t size)
129 {
130 if ((data == nullptr) || (size < sizeof(uint32_t) + sizeof(uint32_t))) {
131 return;
132 }
133 FuzzedDataProvider fdp(data, size);
134
135 MessageParcel parcel;
136 parcel.WriteBool(fdp.ConsumeBool());
137 uint32_t minRangeSize = 0;
138 uint32_t middleRangeSize = 500;
139 uint32_t maxRangeSize = 1000;
140 uint32_t listSize = fdp.ConsumeIntegralInRange<uint32_t>(middleRangeSize, maxRangeSize);
141 parcel.WriteUint32(listSize);
142
143 DmDeviceProfileInfoFilterOptions filterOptions;
144 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
145 ipcModelCodec->DecodeDmDeviceProfileInfoFilterOptions(parcel, filterOptions);
146
147 listSize = fdp.ConsumeIntegralInRange<uint32_t>(minRangeSize, middleRangeSize);
148 parcel.WriteUint32(listSize);
149 ipcModelCodec->DecodeDmDeviceProfileInfoFilterOptions(parcel, filterOptions);
150 }
151
EncodeDmDeviceProfileInfoFilterOptionsFuzzTest(const uint8_t * data,size_t size)152 void EncodeDmDeviceProfileInfoFilterOptionsFuzzTest(const uint8_t* data, size_t size)
153 {
154 if ((data == nullptr) || (size < sizeof(uint32_t) + MAX_STRING_LENGTH)) {
155 return;
156 }
157 FuzzedDataProvider fdp(data, size);
158
159 DmDeviceProfileInfoFilterOptions filterOptions;
160 filterOptions.isCloud = fdp.ConsumeBool();
161 uint32_t minRangeSize = 0;
162 uint32_t maxRangeSize = 100;
163 uint32_t listSize = fdp.ConsumeIntegralInRange<uint32_t>(minRangeSize, maxRangeSize);
164 for (uint32_t i = 0; i < listSize; ++i) {
165 filterOptions.deviceIdList.emplace_back(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
166 }
167 MessageParcel parcel;
168
169 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
170 ipcModelCodec->EncodeDmDeviceProfileInfoFilterOptions(filterOptions, parcel);
171 }
172
DecodeDmServiceProfileInfoFuzzTest(const uint8_t * data,size_t size)173 void DecodeDmServiceProfileInfoFuzzTest(const uint8_t* data, size_t size)
174 {
175 size_t requiredSize = sizeof(int32_t) + MAX_STRING_LENGTH * 5;
176 if ((data == nullptr) || (size < requiredSize)) {
177 return;
178 }
179 FuzzedDataProvider fdp(data, size);
180
181 MessageParcel parcel;
182 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
183 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
184 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
185 int32_t minRangeSize = 0;
186 int32_t maxRangeSize = 100;
187 int32_t num = fdp.ConsumeIntegralInRange<int32_t>(minRangeSize, maxRangeSize);
188 parcel.WriteInt32(num);
189 for (int32_t i = 0; i < num; ++i) {
190 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
191 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
192 }
193 DmServiceProfileInfo svrInfo;
194
195 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
196 ipcModelCodec->DecodeDmServiceProfileInfo(parcel, svrInfo);
197 }
198
DecodeDmServiceProfileInfosFuzzTest(const uint8_t * data,size_t size)199 void DecodeDmServiceProfileInfosFuzzTest(const uint8_t* data, size_t size)
200 {
201 size_t requiredSize = sizeof(int32_t) * 2 + MAX_STRING_LENGTH * 5;
202 if ((data == nullptr) || (size < requiredSize)) {
203 return;
204 }
205 FuzzedDataProvider fdp(data, size);
206
207 MessageParcel parcel;
208 int32_t minRangeSize = 0;
209 int32_t middleRangeSize = 50;
210 int32_t maxRangeSize = 100;
211 int32_t svrNum = fdp.ConsumeIntegralInRange<int32_t>(minRangeSize, maxRangeSize);
212 parcel.WriteInt32(svrNum);
213 for (int32_t i = 0; i < svrNum; ++i) {
214 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
215 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
216 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
217 int32_t num = fdp.ConsumeIntegralInRange<int32_t>(minRangeSize, middleRangeSize);
218 parcel.WriteInt32(num);
219 for (int32_t j = 0; j < num; ++j) {
220 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
221 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
222 }
223 }
224 std::vector<DmServiceProfileInfo> svrInfos;
225
226 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
227 ipcModelCodec->DecodeDmServiceProfileInfos(parcel, svrInfos);
228 }
229
DecodeDmDeviceProfileInfoFuzzTest(const uint8_t * data,size_t size)230 void DecodeDmDeviceProfileInfoFuzzTest(const uint8_t* data, size_t size)
231 {
232 size_t requiredSize = sizeof(int32_t) * 2 + MAX_STRING_LENGTH * 22;
233 if ((data == nullptr) || (size < requiredSize)) {
234 return;
235 }
236 FuzzedDataProvider fdp(data, size);
237 MessageParcel parcel;
238 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
239 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
240 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
241 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
242 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
243 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
244 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
245 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
246 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
247 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
248 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
249 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
250 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
251 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
252 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
253 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
254 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
255 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
256 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
257 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
258 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
259 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
260 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
261 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
262 parcel.WriteBool(fdp.ConsumeBool());
263 int32_t serviceCount = 10;
264 parcel.WriteInt32(serviceCount);
265 for (int32_t i = 0; i < serviceCount; ++i) {
266 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
267 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
268 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
269 int32_t dataCount = 5;
270 parcel.WriteInt32(dataCount);
271 for (int32_t j = 0; j < dataCount; ++j) {
272 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
273 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
274 }
275 }
276 DmDeviceProfileInfo devInfo;
277 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
278 ipcModelCodec->DecodeDmDeviceProfileInfo(parcel, devInfo);
279 }
280
EncodeDmServiceProfileInfoFuzzTest(const uint8_t * data,size_t size)281 void EncodeDmServiceProfileInfoFuzzTest(const uint8_t* data, size_t size)
282 {
283 size_t requiredSize = sizeof(int32_t) + MAX_STRING_LENGTH * 5;
284 if ((data == nullptr) || (size < requiredSize)) {
285 return;
286 }
287 FuzzedDataProvider fdp(data, size);
288
289 DmServiceProfileInfo svrInfo;
290 svrInfo.deviceId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
291 svrInfo.serviceId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
292 svrInfo.serviceType = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
293 int32_t minRangeSize = 0;
294 int32_t maxRangeSize = 100;
295 int32_t dataSize = fdp.ConsumeIntegralInRange<int32_t>(minRangeSize, maxRangeSize);
296 for (int32_t i = 0; i < dataSize; ++i) {
297 std::string key = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
298 std::string value = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
299 svrInfo.data[key] = value;
300 }
301 MessageParcel parcel;
302
303 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
304 ipcModelCodec->EncodeDmServiceProfileInfo(svrInfo, parcel);
305 }
306
EncodeDmServiceProfileInfosFuzzTest(const uint8_t * data,size_t size)307 void EncodeDmServiceProfileInfosFuzzTest(const uint8_t* data, size_t size)
308 {
309 size_t requiredSize = sizeof(int32_t) * 2 + MAX_STRING_LENGTH * 5;
310 if ((data == nullptr) || (size < requiredSize)) {
311 return;
312 }
313 FuzzedDataProvider fdp(data, size);
314 int32_t minRangeSize = 0;
315 int32_t middleRangeSize = 50;
316 int32_t maxRangeSize = 100;
317 std::vector<DmServiceProfileInfo> svrInfos;
318 int32_t listSize = fdp.ConsumeIntegralInRange<int32_t>(minRangeSize, maxRangeSize);
319 for (int32_t i = 0; i < listSize; ++i) {
320 DmServiceProfileInfo svrInfo;
321 svrInfo.deviceId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
322 svrInfo.serviceId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
323 svrInfo.serviceType = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
324
325 int32_t dataSize = fdp.ConsumeIntegralInRange<int32_t>(minRangeSize, middleRangeSize);
326 for (int32_t j = 0; j < dataSize; ++j) {
327 std::string key = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
328 std::string value = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
329 svrInfo.data[key] = value;
330 }
331 svrInfos.emplace_back(svrInfo);
332 }
333 MessageParcel parcel;
334
335 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
336 ipcModelCodec->EncodeDmServiceProfileInfos(svrInfos, parcel);
337 }
338
EncodeDmDeviceProfileInfoFuzzTest(const uint8_t * data,size_t size)339 void EncodeDmDeviceProfileInfoFuzzTest(const uint8_t* data, size_t size)
340 {
341 size_t requiredSize = sizeof(int32_t) * 2 + MAX_STRING_LENGTH * 22;
342 if ((data == nullptr) || (size < requiredSize)) {
343 return;
344 }
345 FuzzedDataProvider fdp(data, size);
346 DmDeviceProfileInfo devInfo;
347 devInfo.deviceId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
348 devInfo.deviceSn = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
349 devInfo.mac = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
350 devInfo.model = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
351 devInfo.internalModel = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
352 devInfo.deviceType = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
353 devInfo.manufacturer = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
354 devInfo.deviceName = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
355 devInfo.productName = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
356 devInfo.productId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
357 devInfo.subProductId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
358 devInfo.sdkVersion = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
359 devInfo.bleMac = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
360 devInfo.sleMac = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
361 devInfo.firmwareVersion = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
362 devInfo.hardwareVersion = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
363 devInfo.softwareVersion = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
364 devInfo.protocolType = fdp.ConsumeIntegral<int32_t>();
365 devInfo.setupType = fdp.ConsumeIntegral<int32_t>();
366 devInfo.wiseDeviceId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
367 devInfo.wiseUserId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
368 devInfo.registerTime = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
369 devInfo.modifyTime = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
370 devInfo.shareTime = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
371 devInfo.isLocalDevice = fdp.ConsumeBool();
372 int32_t serviceCount = 10;
373 for (int32_t i = 0; i < serviceCount; ++i) {
374 DmServiceProfileInfo serviceInfo;
375 serviceInfo.deviceId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
376 serviceInfo.serviceId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
377 serviceInfo.serviceType = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
378 int32_t dataCount = 5;
379 for (int32_t j = 0; j < dataCount; ++j) {
380 std::string key = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
381 std::string value = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
382 serviceInfo.data[key] = value;
383 }
384 devInfo.services.emplace_back(serviceInfo);
385 }
386 MessageParcel parcel;
387 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
388 ipcModelCodec->EncodeDmDeviceProfileInfo(devInfo, parcel);
389 }
390
GetDeviceIconInfoUniqueKeyFuzzTest(const uint8_t * data,size_t size)391 void GetDeviceIconInfoUniqueKeyFuzzTest(const uint8_t* data, size_t size)
392 {
393 size_t requiredSize = MAX_STRING_LENGTH * 5;
394 if ((data == nullptr) || (size < requiredSize)) {
395 return;
396 }
397 FuzzedDataProvider fdp(data, size);
398
399 DmDeviceIconInfoFilterOptions iconFilter;
400 iconFilter.productId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
401 iconFilter.subProductId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
402 iconFilter.internalModel = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
403 iconFilter.imageType = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
404 iconFilter.specName = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
405
406 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
407 ipcModelCodec->GetDeviceIconInfoUniqueKey(iconFilter);
408 }
409
GetDeviceIconInfoFuzzTest(const uint8_t * data,size_t size)410 void GetDeviceIconInfoFuzzTest(const uint8_t* data, size_t size)
411 {
412 size_t requiredSize = MAX_STRING_LENGTH * 5;
413 if ((data == nullptr) || (size < requiredSize)) {
414 return;
415 }
416 FuzzedDataProvider fdp(data, size);
417
418 DmDeviceIconInfo iconInfo;
419 iconInfo.productId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
420 iconInfo.subProductId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
421 iconInfo.internalModel = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
422 iconInfo.imageType = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
423 iconInfo.specName = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
424
425 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
426 ipcModelCodec->GetDeviceIconInfoUniqueKey(iconInfo);
427 }
428
DecodeDmDeviceIconInfoFuzzTest(const uint8_t * data,size_t size)429 void DecodeDmDeviceIconInfoFuzzTest(const uint8_t* data, size_t size)
430 {
431 size_t requiredSize = sizeof(int32_t) + sizeof(uint8_t) + MAX_STRING_LENGTH * 7;
432 if ((data == nullptr) || (size < requiredSize)) {
433 return;
434 }
435 FuzzedDataProvider fdp(data, size);
436
437 MessageParcel parcel;
438 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
439 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
440 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
441 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
442 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
443 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
444 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
445
446 int32_t minRangeLength = 0;
447 int32_t maxRangeLength = 100;
448 int32_t iconLength = fdp.ConsumeIntegralInRange<int32_t>(minRangeLength, maxRangeLength);
449 parcel.WriteInt32(iconLength);
450 if (iconLength > 0) {
451 std::vector<uint8_t> iconData = fdp.ConsumeBytes<uint8_t>(iconLength);
452 parcel.WriteRawData(iconData.data(), iconData.size());
453 }
454 DmDeviceIconInfo deviceIconInfo;
455
456 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
457 ipcModelCodec->DecodeDmDeviceIconInfo(parcel, deviceIconInfo);
458 }
459
EncodeDmDeviceIconInfoFuzzTest(const uint8_t * data,size_t size)460 void EncodeDmDeviceIconInfoFuzzTest(const uint8_t* data, size_t size)
461 {
462 size_t requiredSize = sizeof(int32_t) + sizeof(uint8_t) + MAX_STRING_LENGTH * 7;
463 if ((data == nullptr) || (size < requiredSize)) {
464 return;
465 }
466 FuzzedDataProvider fdp(data, size);
467
468 DmDeviceIconInfo deviceIconInfo;
469 deviceIconInfo.productId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
470 deviceIconInfo.subProductId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
471 deviceIconInfo.internalModel = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
472 deviceIconInfo.imageType = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
473 deviceIconInfo.specName = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
474 deviceIconInfo.version = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
475 deviceIconInfo.url = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
476
477 int32_t minRangeLength = 0;
478 int32_t maxRangeLength = 100;
479 int32_t iconLength = fdp.ConsumeIntegralInRange<int32_t>(minRangeLength, maxRangeLength);
480 deviceIconInfo.icon = fdp.ConsumeBytes<uint8_t>(iconLength);
481
482 MessageParcel parcel;
483 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
484 ipcModelCodec->EncodeDmDeviceIconInfo(deviceIconInfo, parcel);
485 }
486
DecodeDmDeviceIconInfoFilterOptionsFuzzTest(const uint8_t * data,size_t size)487 void DecodeDmDeviceIconInfoFilterOptionsFuzzTest(const uint8_t* data, size_t size)
488 {
489 size_t requiredSize = MAX_STRING_LENGTH * 5;
490 if ((data == nullptr) || (size < requiredSize)) {
491 return;
492 }
493 FuzzedDataProvider fdp(data, size);
494
495 MessageParcel parcel;
496 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
497 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
498 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
499 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
500 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
501
502 DmDeviceIconInfoFilterOptions filterOptions;
503 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
504 ipcModelCodec->DecodeDmDeviceIconInfoFilterOptions(parcel, filterOptions);
505 }
506
EncodeDmDeviceIconInfoFilterOptionsFuzzTest(const uint8_t * data,size_t size)507 void EncodeDmDeviceIconInfoFilterOptionsFuzzTest(const uint8_t* data, size_t size)
508 {
509 size_t requiredSize = MAX_STRING_LENGTH * 5;
510 if ((data == nullptr) || (size < requiredSize)) {
511 return;
512 }
513 FuzzedDataProvider fdp(data, size);
514
515 DmDeviceIconInfoFilterOptions filterOptions;
516 filterOptions.productId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
517 filterOptions.subProductId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
518 filterOptions.internalModel = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
519 filterOptions.imageType = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
520 filterOptions.specName = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
521
522 MessageParcel parcel;
523 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
524 ipcModelCodec->EncodeDmDeviceIconInfoFilterOptions(filterOptions, parcel);
525 }
526
DecodeDmDeviceInfoFuzzTest(const uint8_t * data,size_t size)527 void DecodeDmDeviceInfoFuzzTest(const uint8_t* data, size_t size)
528 {
529 size_t requiredSize = sizeof(int32_t) * 3 + sizeof(uint16_t) + MAX_STRING_LENGTH * 4;
530 if ((data == nullptr) || (size < requiredSize)) {
531 return;
532 }
533 FuzzedDataProvider fdp(data, size);
534
535 MessageParcel parcel;
536 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
537 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
538 parcel.WriteUint16(fdp.ConsumeIntegral<uint16_t>());
539 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
540 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
541 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
542 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
543 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
544
545 DmDeviceInfo devInfo;
546 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
547 ipcModelCodec->DecodeDmDeviceInfo(parcel, devInfo);
548 }
549
EncodeLocalServiceInfoFuzzTest(const uint8_t * data,size_t size)550 void EncodeLocalServiceInfoFuzzTest(const uint8_t* data, size_t size)
551 {
552 size_t requiredSize = sizeof(int32_t) * 3 + MAX_STRING_LENGTH * 4;
553 if ((data == nullptr) || (size < requiredSize)) {
554 return;
555 }
556 FuzzedDataProvider fdp(data, size);
557
558 DMLocalServiceInfo serviceInfo;
559 serviceInfo.bundleName = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
560 serviceInfo.authBoxType = fdp.ConsumeIntegral<int32_t>();
561 serviceInfo.authType = fdp.ConsumeIntegral<int32_t>();
562 serviceInfo.pinExchangeType = fdp.ConsumeIntegral<int32_t>();
563 serviceInfo.pinCode = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
564 serviceInfo.description = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
565 serviceInfo.extraInfo = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
566
567 MessageParcel parcel;
568
569 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
570 ipcModelCodec->EncodeLocalServiceInfo(serviceInfo, parcel);
571 }
572
EncodeLocalServiceInfosFuzzTest(const uint8_t * data,size_t size)573 void EncodeLocalServiceInfosFuzzTest(const uint8_t* data, size_t size)
574 {
575 size_t requiredSize = sizeof(int32_t) * 6 + sizeof(uint32_t) + MAX_STRING_LENGTH * 4;
576 if ((data == nullptr) || (size < requiredSize)) {
577 return;
578 }
579 FuzzedDataProvider fdp(data, size);
580 uint32_t minRangeSize = 0;
581 uint32_t maxRangeSize = 100;
582 std::vector<DMLocalServiceInfo> serviceInfos;
583 uint32_t listSize = fdp.ConsumeIntegralInRange<uint32_t>(minRangeSize, maxRangeSize);
584 for (uint32_t i = 0; i < listSize; ++i) {
585 DMLocalServiceInfo serviceInfo;
586 serviceInfo.bundleName = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
587 serviceInfo.authBoxType = fdp.ConsumeIntegral<int32_t>();
588 serviceInfo.authType = fdp.ConsumeIntegral<int32_t>();
589 serviceInfo.pinExchangeType = fdp.ConsumeIntegral<int32_t>();
590 serviceInfo.pinCode = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
591 serviceInfo.description = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
592 serviceInfo.extraInfo = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
593 serviceInfos.emplace_back(serviceInfo);
594 }
595 MessageParcel parcel;
596 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
597 ipcModelCodec->EncodeLocalServiceInfos(serviceInfos, parcel);
598 serviceInfos.clear();
599 uint32_t outListSize = 1001;
600 for (uint32_t i = 0; i < outListSize; ++i) {
601 DMLocalServiceInfo serviceInfo;
602 serviceInfo.bundleName = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
603 serviceInfo.authBoxType = fdp.ConsumeIntegral<int32_t>();
604 serviceInfo.authType = fdp.ConsumeIntegral<int32_t>();
605 serviceInfo.pinExchangeType = fdp.ConsumeIntegral<int32_t>();
606 serviceInfo.pinCode = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
607 serviceInfo.description = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
608 serviceInfo.extraInfo = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
609 serviceInfos.emplace_back(serviceInfo);
610 }
611 ipcModelCodec->EncodeLocalServiceInfos(serviceInfos, parcel);
612 }
613
DecodeLocalServiceInfoFuzzTest(const uint8_t * data,size_t size)614 void DecodeLocalServiceInfoFuzzTest(const uint8_t* data, size_t size)
615 {
616 size_t requiredSize = sizeof(int32_t) * 3 + MAX_STRING_LENGTH * 4;
617 if ((data == nullptr) || (size < requiredSize)) {
618 return;
619 }
620 FuzzedDataProvider fdp(data, size);
621
622 MessageParcel parcel;
623 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
624 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
625 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
626 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
627 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
628 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
629 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
630
631 DMLocalServiceInfo serviceInfo;
632 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
633 ipcModelCodec->DecodeLocalServiceInfo(parcel, serviceInfo);
634 }
635
DecodeLocalServiceInfosFuzzTest(const uint8_t * data,size_t size)636 void DecodeLocalServiceInfosFuzzTest(const uint8_t* data, size_t size)
637 {
638 size_t requiredSize = sizeof(int32_t) * 3 + sizeof(uint32_t) + MAX_STRING_LENGTH * 4;
639 if ((data == nullptr) || (size < requiredSize)) {
640 return;
641 }
642 FuzzedDataProvider fdp(data, size);
643
644 uint32_t minRangeSize = 0;
645 uint32_t maxRangeSize = 100;
646 MessageParcel parcel;
647 uint32_t num = fdp.ConsumeIntegralInRange<uint32_t>(minRangeSize, maxRangeSize);
648 parcel.WriteUint32(num);
649 for (uint32_t i = 0; i < num; ++i) {
650 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
651 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
652 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
653 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
654 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
655 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
656 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
657 }
658
659 std::vector<DMLocalServiceInfo> serviceInfos;
660 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
661 ipcModelCodec->DecodeLocalServiceInfos(parcel, serviceInfos);
662 }
663
EncodeNetworkIdQueryFilterFuzzTest(const uint8_t * data,size_t size)664 void EncodeNetworkIdQueryFilterFuzzTest(const uint8_t* data, size_t size)
665 {
666 size_t requiredSize = sizeof(int32_t) + MAX_STRING_LENGTH * 4;
667 if ((data == nullptr) || (size < requiredSize)) {
668 return;
669 }
670 FuzzedDataProvider fdp(data, size);
671
672 NetworkIdQueryFilter queryFilter;
673 queryFilter.wiseDeviceId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
674 queryFilter.onlineStatus = fdp.ConsumeIntegral<int32_t>();
675 queryFilter.deviceType = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
676 queryFilter.deviceProductId = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
677 queryFilter.deviceModel = fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH);
678
679 MessageParcel parcel;
680 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
681 ipcModelCodec->EncodeNetworkIdQueryFilter(queryFilter, parcel);
682 }
683
DecodeNetworkIdQueryFilterFuzzTest(const uint8_t * data,size_t size)684 void DecodeNetworkIdQueryFilterFuzzTest(const uint8_t* data, size_t size)
685 {
686 size_t requiredSize = sizeof(int32_t) + MAX_STRING_LENGTH * 4;
687 if ((data == nullptr) || (size < requiredSize)) {
688 return;
689 }
690 FuzzedDataProvider fdp(data, size);
691
692 MessageParcel parcel;
693 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
694 parcel.WriteInt32(fdp.ConsumeIntegral<int32_t>());
695 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
696 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
697 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
698
699 NetworkIdQueryFilter queryFilter;
700 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
701 ipcModelCodec->DecodeNetworkIdQueryFilter(parcel, queryFilter);
702 }
703
EncodeStringVectorFuzzTest(const uint8_t * data,size_t size)704 void EncodeStringVectorFuzzTest(const uint8_t* data, size_t size)
705 {
706 if ((data == nullptr) || (size < sizeof(uint32_t))) {
707 return;
708 }
709 FuzzedDataProvider fdp(data, size);
710 uint32_t minRangeSize = 0;
711 uint32_t maxRangeSize = 100;
712
713 std::vector<std::string> vec;
714 uint32_t listSize = fdp.ConsumeIntegralInRange<uint32_t>(minRangeSize, maxRangeSize);
715 for (uint32_t i = 0; i < listSize; ++i) {
716 vec.emplace_back(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
717 }
718 MessageParcel parcel;
719
720 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
721 ipcModelCodec->EncodeStringVector(vec, parcel);
722 }
723
DecodeStringVectorFuzzTest(const uint8_t * data,size_t size)724 void DecodeStringVectorFuzzTest(const uint8_t* data, size_t size)
725 {
726 size_t count = 2;
727 if ((data == nullptr) || (size < sizeof(uint32_t) * count)) {
728 return;
729 }
730 FuzzedDataProvider fdp(data, size);
731
732 uint32_t minRangeSize = 0;
733 uint32_t maxRangeSize = 1000;
734 MessageParcel parcel;
735 uint32_t num = fdp.ConsumeIntegralInRange<uint32_t>(minRangeSize, maxRangeSize);
736 parcel.WriteUint32(num);
737 for (uint32_t i = 0; i < num; ++i) {
738 parcel.WriteString(fdp.ConsumeRandomLengthString(MAX_STRING_LENGTH));
739 }
740
741 std::vector<std::string> vec;
742 std::shared_ptr<IpcModelCodec> ipcModelCodec = std::make_shared<IpcModelCodec>();
743 ipcModelCodec->DecodeStringVector(parcel, vec);
744
745 uint32_t outMinRangeSize = 1001;
746 uint32_t outMaxRangeSize = 2000;
747 uint32_t invalidNum = fdp.ConsumeIntegralInRange<uint32_t>(outMinRangeSize, outMaxRangeSize);
748 MessageParcel invalidParcel;
749 parcel.WriteUint32(invalidNum);
750 ipcModelCodec->DecodeStringVector(invalidParcel, vec);
751 }
752 }
753 }
754
755 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)756 extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
757 {
758 /* Run your code on data */
759 OHOS::DistributedHardware::DecodeDmDeviceBasicInfoFuzzTest(data, size);
760 OHOS::DistributedHardware::EncodePeerTargetIdFuzzTest(data, size);
761 OHOS::DistributedHardware::DecodePeerTargetIdFuzzTest(data, size);
762 OHOS::DistributedHardware::EncodeDmAccessCallerFuzzTest(data, size);
763 OHOS::DistributedHardware::EncodeDmAccessCalleeFuzzTest(data, size);
764 OHOS::DistributedHardware::DecodeDmDeviceProfileInfoFilterOptionsFuzzTest(data, size);
765 OHOS::DistributedHardware::EncodeDmDeviceProfileInfoFilterOptionsFuzzTest(data, size);
766 OHOS::DistributedHardware::DecodeDmServiceProfileInfoFuzzTest(data, size);
767 OHOS::DistributedHardware::DecodeDmServiceProfileInfosFuzzTest(data, size);
768 OHOS::DistributedHardware::DecodeDmDeviceProfileInfoFuzzTest(data, size);
769 OHOS::DistributedHardware::EncodeDmServiceProfileInfoFuzzTest(data, size);
770 OHOS::DistributedHardware::EncodeDmServiceProfileInfosFuzzTest(data, size);
771 OHOS::DistributedHardware::EncodeDmDeviceProfileInfoFuzzTest(data, size);
772 OHOS::DistributedHardware::GetDeviceIconInfoUniqueKeyFuzzTest(data, size);
773 OHOS::DistributedHardware::GetDeviceIconInfoFuzzTest(data, size);
774 OHOS::DistributedHardware::DecodeDmDeviceIconInfoFuzzTest(data, size);
775 OHOS::DistributedHardware::EncodeDmDeviceIconInfoFuzzTest(data, size);
776 OHOS::DistributedHardware::DecodeDmDeviceIconInfoFilterOptionsFuzzTest(data, size);
777 OHOS::DistributedHardware::EncodeDmDeviceIconInfoFilterOptionsFuzzTest(data, size);
778 OHOS::DistributedHardware::DecodeDmDeviceInfoFuzzTest(data, size);
779 OHOS::DistributedHardware::EncodeLocalServiceInfoFuzzTest(data, size);
780 OHOS::DistributedHardware::EncodeLocalServiceInfosFuzzTest(data, size);
781 OHOS::DistributedHardware::DecodeLocalServiceInfoFuzzTest(data, size);
782 OHOS::DistributedHardware::DecodeLocalServiceInfosFuzzTest(data, size);
783 OHOS::DistributedHardware::EncodeNetworkIdQueryFilterFuzzTest(data, size);
784 OHOS::DistributedHardware::DecodeNetworkIdQueryFilterFuzzTest(data, size);
785 OHOS::DistributedHardware::EncodeStringVectorFuzzTest(data, size);
786 OHOS::DistributedHardware::DecodeStringVectorFuzzTest(data, size);
787 return 0;
788 }
789