1 /*
2 * Copyright (c) 2022 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 <thread>
17
18 #include <securec.h>
19
20 #include "iservice_registry.h"
21 #include "singleton.h"
22 #include "system_ability_definition.h"
23
24 #include "netsys_native_client.h"
25 #define private public
26 #include "netsys_native_service.h"
27 #include "netsys_native_service_stub.h"
28
29 namespace OHOS {
30 namespace NetManagerStandard {
31 namespace {
32 const uint8_t *g_baseFuzzData = nullptr;
33 static constexpr uint32_t CONVERT_NUMBER_TO_BOOL = 2;
34 size_t g_baseFuzzSize = 0;
35 size_t g_baseFuzzPos;
36 constexpr size_t STR_LEN = 10;
37 constexpr size_t VECTOR_MAX_SIZE = 15;
38 } // namespace
39
GetData()40 template <class T> T GetData()
41 {
42 T object{};
43 size_t objectSize = sizeof(object);
44 if (g_baseFuzzData == nullptr || objectSize > g_baseFuzzSize - g_baseFuzzPos) {
45 return object;
46 }
47 errno_t ret = memcpy_s(&object, objectSize, g_baseFuzzData + g_baseFuzzPos, objectSize);
48 if (ret != EOK) {
49 return {};
50 }
51 g_baseFuzzPos += objectSize;
52 return object;
53 }
54
GetStringFromData(int strlen)55 std::string GetStringFromData(int strlen)
56 {
57 char cstr[strlen];
58 cstr[strlen - 1] = '\0';
59 for (int i = 0; i < strlen - 1; i++) {
60 cstr[i] = GetData<char>();
61 }
62 std::string str(cstr);
63 return str;
64 }
65
66 static bool g_isInited = false;
Init()67 void Init()
68 {
69 if (!DelayedSingleton<NetsysNative::NetsysNativeService>::GetInstance()->Init()) {
70 g_isInited = false;
71 } else {
72 g_isInited = true;
73 }
74 }
75
OnRemoteRequest(uint32_t code,MessageParcel & data)76 int32_t OnRemoteRequest(uint32_t code, MessageParcel &data)
77 {
78 if (!g_isInited) {
79 Init();
80 }
81
82 MessageParcel reply;
83 MessageOption option;
84
85 int32_t ret =
86 DelayedSingleton<NetsysNative::NetsysNativeService>::GetInstance()->OnRemoteRequest(code, data, reply, option);
87 return ret;
88 }
89
WriteInterfaceToken(MessageParcel & data)90 bool WriteInterfaceToken(MessageParcel &data)
91 {
92 if (!data.WriteInterfaceToken(NetsysNative::NetsysNativeServiceStub::GetDescriptor())) {
93 return false;
94 }
95 return true;
96 }
97
98 class INetSysCallbackTest : public NetsysNative::NotifyCallbackStub {
99 public:
INetSysCallbackTest()100 INetSysCallbackTest() : NotifyCallbackStub() {}
~INetSysCallbackTest()101 virtual ~INetSysCallbackTest() {}
102 };
103
104 class NetsysControllerCallbackTest : public NetsysControllerCallback {
105 public:
OnInterfaceAddressUpdated(const std::string &,const std::string &,int,int)106 virtual int32_t OnInterfaceAddressUpdated(const std::string &, const std::string &, int, int)
107 {
108 return 0;
109 }
OnInterfaceAddressRemoved(const std::string &,const std::string &,int,int)110 virtual int32_t OnInterfaceAddressRemoved(const std::string &, const std::string &, int, int)
111 {
112 return 0;
113 }
OnInterfaceAdded(const std::string &)114 virtual int32_t OnInterfaceAdded(const std::string &)
115 {
116 return 0;
117 }
OnInterfaceRemoved(const std::string &)118 virtual int32_t OnInterfaceRemoved(const std::string &)
119 {
120 return 0;
121 }
OnInterfaceChanged(const std::string &,bool)122 virtual int32_t OnInterfaceChanged(const std::string &, bool)
123 {
124 return 0;
125 }
OnInterfaceLinkStateChanged(const std::string &,bool)126 virtual int32_t OnInterfaceLinkStateChanged(const std::string &, bool)
127 {
128 return 0;
129 }
OnRouteChanged(bool,const std::string &,const std::string &,const std::string &)130 virtual int32_t OnRouteChanged(bool, const std::string &, const std::string &, const std::string &)
131 {
132 return 0;
133 }
OnDhcpSuccess(NetsysControllerCallback::DhcpResult & dhcpResult)134 virtual int32_t OnDhcpSuccess(NetsysControllerCallback::DhcpResult &dhcpResult)
135 {
136 return 0;
137 }
OnBandwidthReachedLimit(const std::string & limitName,const std::string & iface)138 virtual int32_t OnBandwidthReachedLimit(const std::string &limitName, const std::string &iface)
139 {
140 return 0;
141 }
142 };
143
144 static NetsysNative::NetsysNativeService g_netSysNativeClient;
145
NetworkCreatePhysicalFuzzTest(const uint8_t * data,size_t size)146 void NetworkCreatePhysicalFuzzTest(const uint8_t *data, size_t size)
147 {
148 if ((data == nullptr) || (size == 0)) {
149 return;
150 }
151 g_baseFuzzData = data;
152 g_baseFuzzSize = size;
153 g_baseFuzzPos = 0;
154
155 int32_t netId = GetData<int32_t>();
156 int32_t permission = GetData<int32_t>();
157
158 MessageParcel dataParcel;
159 if (!WriteInterfaceToken(dataParcel)) {
160 return;
161 }
162 dataParcel.WriteInt32(netId);
163 dataParcel.WriteInt32(permission);
164 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_NETWORK_CREATE_PHYSICAL, dataParcel);
165 }
166
NetworkDestroyFuzzTest(const uint8_t * data,size_t size)167 void NetworkDestroyFuzzTest(const uint8_t *data, size_t size)
168 {
169 if ((data == nullptr) || (size == 0)) {
170 return;
171 }
172 g_baseFuzzData = data;
173 g_baseFuzzSize = size;
174 g_baseFuzzPos = 0;
175
176 int32_t netId = GetData<int32_t>();
177 MessageParcel dataParcel;
178 if (!WriteInterfaceToken(dataParcel)) {
179 return;
180 }
181 dataParcel.WriteInt32(netId);
182 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_NETWORK_DESTROY, dataParcel);
183 }
184
NetworkAddInterfaceFuzzTest(const uint8_t * data,size_t size)185 void NetworkAddInterfaceFuzzTest(const uint8_t *data, size_t size)
186 {
187 if ((data == nullptr) || (size == 0)) {
188 return;
189 }
190 g_baseFuzzData = data;
191 g_baseFuzzSize = size;
192 g_baseFuzzPos = 0;
193
194 int32_t netId = GetData<int32_t>();
195 std::string iface = GetStringFromData(STR_LEN);
196
197 MessageParcel dataParcel;
198 if (!WriteInterfaceToken(dataParcel)) {
199 return;
200 }
201 dataParcel.WriteInt32(netId);
202 dataParcel.WriteString(iface);
203 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_NETWORK_ADD_INTERFACE, dataParcel);
204 }
205
NetworkRemoveInterfaceFuzzTest(const uint8_t * data,size_t size)206 void NetworkRemoveInterfaceFuzzTest(const uint8_t *data, size_t size)
207 {
208 if ((data == nullptr) || (size == 0)) {
209 return;
210 }
211 g_baseFuzzData = data;
212 g_baseFuzzSize = size;
213 g_baseFuzzPos = 0;
214
215 int32_t netId = GetData<int32_t>();
216 std::string iface = GetStringFromData(STR_LEN);
217
218 MessageParcel dataParcel;
219 if (!WriteInterfaceToken(dataParcel)) {
220 return;
221 }
222 dataParcel.WriteInt32(netId);
223 dataParcel.WriteString(iface);
224 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_NETWORK_REMOVE_INTERFACE, dataParcel);
225 }
226
NetworkAddRouteFuzzTest(const uint8_t * data,size_t size)227 void NetworkAddRouteFuzzTest(const uint8_t *data, size_t size)
228 {
229 if ((data == nullptr) || (size == 0)) {
230 return;
231 }
232 g_baseFuzzData = data;
233 g_baseFuzzSize = size;
234 g_baseFuzzPos = 0;
235
236 int32_t netId = GetData<int32_t>();
237 std::string ifName = GetStringFromData(STR_LEN);
238 std::string destination = GetStringFromData(STR_LEN);
239 std::string nextHop = GetStringFromData(STR_LEN);
240
241 MessageParcel dataParcel;
242 if (!WriteInterfaceToken(dataParcel)) {
243 return;
244 }
245 dataParcel.WriteInt32(netId);
246 dataParcel.WriteString(ifName);
247 dataParcel.WriteString(destination);
248 dataParcel.WriteString(nextHop);
249 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_NETWORK_ADD_ROUTE, dataParcel);
250 }
251
NetworkRemoveRouteFuzzTest(const uint8_t * data,size_t size)252 void NetworkRemoveRouteFuzzTest(const uint8_t *data, size_t size)
253 {
254 if ((data == nullptr) || (size == 0)) {
255 return;
256 }
257 g_baseFuzzData = data;
258 g_baseFuzzSize = size;
259 g_baseFuzzPos = 0;
260
261 int32_t netId = GetData<int32_t>();
262 std::string ifName = GetStringFromData(STR_LEN);
263 std::string destination = GetStringFromData(STR_LEN);
264 std::string nextHop = GetStringFromData(STR_LEN);
265
266 MessageParcel dataParcel;
267 if (!WriteInterfaceToken(dataParcel)) {
268 return;
269 }
270 dataParcel.WriteInt32(netId);
271 dataParcel.WriteString(ifName);
272 dataParcel.WriteString(destination);
273 dataParcel.WriteString(nextHop);
274 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_NETWORK_REMOVE_ROUTE, dataParcel);
275 }
276
InterfaceGetConfigFuzzTest(const uint8_t * data,size_t size)277 void InterfaceGetConfigFuzzTest(const uint8_t *data, size_t size)
278 {
279 if ((data == nullptr) || (size == 0)) {
280 return;
281 }
282 g_baseFuzzData = data;
283 g_baseFuzzSize = size;
284 g_baseFuzzPos = 0;
285
286 OHOS::nmd::InterfaceConfigurationParcel cfg;
287 cfg.ifName = GetStringFromData(STR_LEN);
288 MessageParcel dataParcel;
289 if (!WriteInterfaceToken(dataParcel)) {
290 return;
291 }
292
293 dataParcel.WriteString(cfg.ifName);
294 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_INTERFACE_GET_CONFIG, dataParcel);
295 }
296
InterfaceGetMtuFuzzTest(const uint8_t * data,size_t size)297 void InterfaceGetMtuFuzzTest(const uint8_t *data, size_t size)
298 {
299 if ((data == nullptr) || (size == 0)) {
300 return;
301 }
302 g_baseFuzzData = data;
303 g_baseFuzzSize = size;
304 g_baseFuzzPos = 0;
305
306 std::string interfaceName = GetStringFromData(STR_LEN);
307
308 MessageParcel dataParcel;
309 if (!WriteInterfaceToken(dataParcel)) {
310 return;
311 }
312 dataParcel.WriteString(interfaceName);
313 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_INTERFACE_GET_MTU, dataParcel);
314 }
315
InterfaceSetMtuFuzzTest(const uint8_t * data,size_t size)316 void InterfaceSetMtuFuzzTest(const uint8_t *data, size_t size)
317 {
318 if ((data == nullptr) || (size == 0)) {
319 return;
320 }
321 g_baseFuzzData = data;
322 g_baseFuzzSize = size;
323 g_baseFuzzPos = 0;
324
325 int32_t mtu = GetData<int32_t>();
326 std::string interfaceName = GetStringFromData(STR_LEN);
327
328 MessageParcel dataParcel;
329 if (!WriteInterfaceToken(dataParcel)) {
330 return;
331 }
332 dataParcel.WriteString(interfaceName);
333 dataParcel.WriteInt32(mtu);
334 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_INTERFACE_SET_MTU, dataParcel);
335 }
336
InterfaceAddAddressFuzzTest(const uint8_t * data,size_t size)337 void InterfaceAddAddressFuzzTest(const uint8_t *data, size_t size)
338 {
339 if ((data == nullptr) || (size == 0)) {
340 return;
341 }
342 g_baseFuzzData = data;
343 g_baseFuzzSize = size;
344 g_baseFuzzPos = 0;
345
346 std::string interfaceName = GetStringFromData(STR_LEN);
347 std::string ipAddr = GetStringFromData(STR_LEN);
348 int32_t prefixLength = GetData<int32_t>();
349
350 MessageParcel dataParcel;
351 if (!WriteInterfaceToken(dataParcel)) {
352 return;
353 }
354 dataParcel.WriteString(interfaceName);
355 dataParcel.WriteString(ipAddr);
356 dataParcel.WriteInt32(prefixLength);
357 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_INTERFACE_ADD_ADDRESS, dataParcel);
358 }
359
InterfaceDelAddressFuzzTest(const uint8_t * data,size_t size)360 void InterfaceDelAddressFuzzTest(const uint8_t *data, size_t size)
361 {
362 if ((data == nullptr) || (size == 0)) {
363 return;
364 }
365 g_baseFuzzData = data;
366 g_baseFuzzSize = size;
367 g_baseFuzzPos = 0;
368
369 std::string interfaceName = GetStringFromData(STR_LEN);
370 std::string ipAddr = GetStringFromData(STR_LEN);
371 int32_t prefixLength = GetData<int32_t>();
372
373 MessageParcel dataParcel;
374 if (!WriteInterfaceToken(dataParcel)) {
375 return;
376 }
377 dataParcel.WriteString(interfaceName);
378 dataParcel.WriteString(ipAddr);
379 dataParcel.WriteInt32(prefixLength);
380 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_INTERFACE_DEL_ADDRESS, dataParcel);
381 }
382
SetResolverConfigFuzzTest(const uint8_t * data,size_t size)383 void SetResolverConfigFuzzTest(const uint8_t *data, size_t size)
384 {
385 if ((data == nullptr) || (size == 0)) {
386 return;
387 }
388 g_baseFuzzData = data;
389 g_baseFuzzSize = size;
390 g_baseFuzzPos = 0;
391
392 uint16_t netId = GetData<uint16_t>();
393 uint16_t baseTimeoutMsec = GetData<uint16_t>();
394 uint8_t retryCount = GetData<uint8_t>();
395
396 MessageParcel dataParcel;
397 if (!WriteInterfaceToken(dataParcel)) {
398 return;
399 }
400 dataParcel.WriteUint16(netId);
401 dataParcel.WriteUint16(baseTimeoutMsec);
402 dataParcel.WriteUint8(retryCount);
403
404 uint32_t vectorLength = GetData<uint32_t>() % VECTOR_MAX_SIZE;
405 dataParcel.WriteInt32(static_cast<int32_t>(vectorLength));
406 for (uint32_t i = 0; i <= vectorLength; i++) {
407 dataParcel.WriteString(GetStringFromData(STR_LEN));
408 }
409
410 uint32_t vectorLength2 = GetData<uint32_t>() % VECTOR_MAX_SIZE;
411 dataParcel.WriteInt32(static_cast<int32_t>(vectorLength2));
412 for (uint32_t i = 0; i <= vectorLength2; i++) {
413 dataParcel.WriteString(GetStringFromData(STR_LEN));
414 }
415 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_SET_RESOLVER_CONFIG, dataParcel);
416 }
417
GetResolverConfigFuzzTest(const uint8_t * data,size_t size)418 void GetResolverConfigFuzzTest(const uint8_t *data, size_t size)
419 {
420 if ((data == nullptr) || (size == 0)) {
421 return;
422 }
423 g_baseFuzzData = data;
424 g_baseFuzzSize = size;
425 g_baseFuzzPos = 0;
426
427 uint16_t netId = GetData<uint16_t>();
428 MessageParcel dataParcel;
429 if (!WriteInterfaceToken(dataParcel)) {
430 return;
431 }
432 dataParcel.WriteUint16(netId);
433 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_GET_RESOLVER_CONFIG, dataParcel);
434 }
435
CreateNetworkCacheFuzzTest(const uint8_t * data,size_t size)436 void CreateNetworkCacheFuzzTest(const uint8_t *data, size_t size)
437 {
438 if ((data == nullptr) || (size == 0)) {
439 return;
440 }
441 g_baseFuzzData = data;
442 g_baseFuzzSize = size;
443 g_baseFuzzPos = 0;
444
445 uint16_t netId = GetData<uint16_t>();
446
447 MessageParcel dataParcel;
448 if (!WriteInterfaceToken(dataParcel)) {
449 return;
450 }
451 dataParcel.WriteUint16(netId);
452 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_CREATE_NETWORK_CACHE, dataParcel);
453 }
454
DestroyNetworkCacheFuzzTest(const uint8_t * data,size_t size)455 void DestroyNetworkCacheFuzzTest(const uint8_t *data, size_t size)
456 {
457 if ((data == nullptr) || (size == 0)) {
458 return;
459 }
460 g_baseFuzzData = data;
461 g_baseFuzzSize = size;
462 g_baseFuzzPos = 0;
463
464 uint16_t netId = GetData<uint16_t>();
465 MessageParcel dataParcel;
466 if (!WriteInterfaceToken(dataParcel)) {
467 return;
468 }
469 dataParcel.WriteUint16(netId);
470 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_DESTROY_NETWORK_CACHE, dataParcel);
471 }
472
InterfaceGetListFuzzTest(const uint8_t * data,size_t size)473 void InterfaceGetListFuzzTest(const uint8_t *data, size_t size)
474 {
475 if ((data == nullptr) || (size == 0)) {
476 return;
477 }
478 g_baseFuzzData = data;
479 g_baseFuzzSize = size;
480 g_baseFuzzPos = 0;
481
482 MessageParcel dataParcel;
483 if (!WriteInterfaceToken(dataParcel)) {
484 return;
485 }
486 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_INTERFACE_GET_LIST, dataParcel);
487 }
488
ShareDnsSetFuzzTest(const uint8_t * data,size_t size)489 void ShareDnsSetFuzzTest(const uint8_t *data, size_t size)
490 {
491 if ((data == nullptr) || (size == 0)) {
492 return;
493 }
494 g_baseFuzzData = data;
495 g_baseFuzzSize = size;
496 g_baseFuzzPos = 0;
497
498 uint16_t netId = GetData<uint16_t>();
499 MessageParcel dataParcel;
500 if (!WriteInterfaceToken(dataParcel)) {
501 return;
502 }
503 dataParcel.WriteUint16(netId);
504 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_TETHER_DNS_SET, dataParcel);
505 }
506
StartDnsProxyListenFuzzTest(const uint8_t * data,size_t size)507 void StartDnsProxyListenFuzzTest(const uint8_t *data, size_t size)
508 {
509 if ((data == nullptr) || (size == 0)) {
510 return;
511 }
512 g_baseFuzzData = data;
513 g_baseFuzzSize = size;
514 g_baseFuzzPos = 0;
515
516 MessageParcel dataParcel;
517 if (!WriteInterfaceToken(dataParcel)) {
518 return;
519 }
520 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_START_DNS_PROXY_LISTEN, dataParcel);
521 }
522
StopDnsProxyListenFuzzTest(const uint8_t * data,size_t size)523 void StopDnsProxyListenFuzzTest(const uint8_t *data, size_t size)
524 {
525 if ((data == nullptr) || (size == 0)) {
526 return;
527 }
528 g_baseFuzzData = data;
529 g_baseFuzzSize = size;
530 g_baseFuzzPos = 0;
531
532 MessageParcel dataParcel;
533 if (!WriteInterfaceToken(dataParcel)) {
534 return;
535 }
536 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_STOP_DNS_PROXY_LISTEN, dataParcel);
537 }
538
StartDhcpClientFuzzTest(const uint8_t * data,size_t size)539 void StartDhcpClientFuzzTest(const uint8_t *data, size_t size)
540 {
541 if ((data == nullptr) || (size == 0)) {
542 return;
543 }
544 g_baseFuzzData = data;
545 g_baseFuzzSize = size;
546 g_baseFuzzPos = 0;
547
548 std::string iface = GetStringFromData(STR_LEN);
549 bool bIpv6 = GetData<uint32_t>() % CONVERT_NUMBER_TO_BOOL == 0;
550 MessageParcel dataParcel;
551 if (!WriteInterfaceToken(dataParcel)) {
552 return;
553 }
554 dataParcel.WriteString(iface);
555 dataParcel.WriteBool(bIpv6);
556 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_START_DHCP_CLIENT, dataParcel);
557 }
558
StopDhcpClientFuzzTest(const uint8_t * data,size_t size)559 void StopDhcpClientFuzzTest(const uint8_t *data, size_t size)
560 {
561 if ((data == nullptr) || (size == 0)) {
562 return;
563 }
564 g_baseFuzzData = data;
565 g_baseFuzzSize = size;
566 g_baseFuzzPos = 0;
567
568 std::string iface = GetStringFromData(STR_LEN);
569 bool bIpv6 = GetData<uint32_t>() % CONVERT_NUMBER_TO_BOOL == 0;
570
571 MessageParcel dataParcel;
572 if (!WriteInterfaceToken(dataParcel)) {
573 return;
574 }
575 dataParcel.WriteString(iface);
576 dataParcel.WriteBool(bIpv6);
577 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_STOP_DHCP_CLIENT, dataParcel);
578 }
579
StartDhcpServiceFuzzTest(const uint8_t * data,size_t size)580 void StartDhcpServiceFuzzTest(const uint8_t *data, size_t size)
581 {
582 if ((data == nullptr) || (size == 0)) {
583 return;
584 }
585 g_baseFuzzData = data;
586 g_baseFuzzSize = size;
587 g_baseFuzzPos = 0;
588
589 std::string iface = GetStringFromData(STR_LEN);
590 std::string ipv4addr = GetStringFromData(STR_LEN);
591 MessageParcel dataParcel;
592 if (!WriteInterfaceToken(dataParcel)) {
593 return;
594 }
595 dataParcel.WriteString(iface);
596 dataParcel.WriteString(ipv4addr);
597 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_START_DHCP_SERVICE, dataParcel);
598 }
599
StopDhcpServiceFuzzTest(const uint8_t * data,size_t size)600 void StopDhcpServiceFuzzTest(const uint8_t *data, size_t size)
601 {
602 if ((data == nullptr) || (size == 0)) {
603 return;
604 }
605 g_baseFuzzData = data;
606 g_baseFuzzSize = size;
607 g_baseFuzzPos = 0;
608
609 std::string iface = GetStringFromData(STR_LEN);
610 MessageParcel dataParcel;
611 if (!WriteInterfaceToken(dataParcel)) {
612 return;
613 }
614 dataParcel.WriteString(iface);
615 OnRemoteRequest(NetsysNative::INetsysService::NETSYS_STOP_DHCP_SERVICE, dataParcel);
616 }
617 } // namespace NetManagerStandard
618 } // namespace OHOS
619
620 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)621 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
622 {
623 /* Run your code on data */
624 OHOS::NetManagerStandard::NetworkCreatePhysicalFuzzTest(data, size);
625 OHOS::NetManagerStandard::NetworkDestroyFuzzTest(data, size);
626 OHOS::NetManagerStandard::NetworkAddInterfaceFuzzTest(data, size);
627 OHOS::NetManagerStandard::NetworkRemoveInterfaceFuzzTest(data, size);
628 OHOS::NetManagerStandard::NetworkAddRouteFuzzTest(data, size);
629 OHOS::NetManagerStandard::NetworkRemoveRouteFuzzTest(data, size);
630 OHOS::NetManagerStandard::InterfaceGetConfigFuzzTest(data, size);
631 OHOS::NetManagerStandard::InterfaceGetMtuFuzzTest(data, size);
632 OHOS::NetManagerStandard::InterfaceSetMtuFuzzTest(data, size);
633 OHOS::NetManagerStandard::InterfaceAddAddressFuzzTest(data, size);
634 OHOS::NetManagerStandard::InterfaceDelAddressFuzzTest(data, size);
635 OHOS::NetManagerStandard::SetResolverConfigFuzzTest(data, size);
636 OHOS::NetManagerStandard::GetResolverConfigFuzzTest(data, size);
637 OHOS::NetManagerStandard::DestroyNetworkCacheFuzzTest(data, size);
638 OHOS::NetManagerStandard::InterfaceGetListFuzzTest(data, size);
639 OHOS::NetManagerStandard::ShareDnsSetFuzzTest(data, size);
640 OHOS::NetManagerStandard::StopDnsProxyListenFuzzTest(data, size);
641 OHOS::NetManagerStandard::StartDhcpClientFuzzTest(data, size);
642 OHOS::NetManagerStandard::StopDhcpClientFuzzTest(data, size);
643 OHOS::NetManagerStandard::StartDhcpServiceFuzzTest(data, size);
644 OHOS::NetManagerStandard::StopDhcpServiceFuzzTest(data, size);
645 return 0;
646 }