• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }