• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2024 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 "ethernet_client_fuzzer.h"
17 
18 #include <cstddef>
19 #include <cstdint>
20 #include <iosfwd>
21 #include <memory>
22 #include <new>
23 #include <securec.h>
24 #include <string>
25 
26 #include "mac_address_info.h"
27 #include "netmanager_ext_test_security.h"
28 #include "refbase.h"
29 #include "singleton.h"
30 
31 #include "dev_interface_state.h"
32 #define private public
33 #include "ethernet_client.h"
34 #include "ethernet_service.h"
35 #include "interface_configuration.h"
36 #include "interface_state_callback_stub.h"
37 
38 namespace OHOS {
39 namespace NetManagerStandard {
40 namespace {
41 const uint8_t *g_baseFuzzData = nullptr;
42 static constexpr uint32_t CREATE_BOOL_TYPE_VALUE = 2;
43 size_t g_baseFuzzSize = 0;
44 size_t g_baseFuzzPos;
45 constexpr size_t IFACE_LEN = 5;
46 constexpr size_t NET_TYPE_LEN = 1;
47 constexpr size_t REG_CMD_LEN = 1024;
48 } // namespace
49 
GetData()50 template <class T> T GetData()
51 {
52     T object{};
53     size_t objectSize = sizeof(object);
54     if (g_baseFuzzData == nullptr || objectSize > g_baseFuzzSize - g_baseFuzzPos) {
55         return object;
56     }
57     errno_t ret = memcpy_s(&object, objectSize, g_baseFuzzData + g_baseFuzzPos, objectSize);
58     if (ret != EOK) {
59         return {};
60     }
61     g_baseFuzzPos += objectSize;
62     return object;
63 }
64 
65 class MonitorInterfaceStateCallback : public InterfaceStateCallbackStub {
66 public:
OnInterfaceAdded(const std::string & ifName)67     int32_t OnInterfaceAdded(const std::string &ifName) override
68     {
69         return 0;
70     }
71 
OnInterfaceRemoved(const std::string & ifName)72     int32_t OnInterfaceRemoved(const std::string &ifName) override
73     {
74         return 0;
75     }
76 
OnInterfaceChanged(const std::string & ifName,bool up)77     int32_t OnInterfaceChanged(const std::string &ifName, bool up) override
78     {
79         return 0;
80     }
81 };
82 
83 class NetRegisterEapCallbackTest : public NetRegisterEapCallbackStub {
84 public:
OnRegisterCustomEapCallback(const std::string & regCmd)85     int32_t OnRegisterCustomEapCallback(const std::string &regCmd) override
86     {
87         return 0;
88     }
OnReplyCustomEapDataEvent(int result,const sptr<EapData> & eapData)89     int32_t OnReplyCustomEapDataEvent(int result, const sptr<EapData> &eapData) override
90     {
91         return 0;
92     }
93 };
94 
95 class NetEapPostBackCallbackTest : public NetEapPostbackCallbackStub {
96 public:
OnEapSupplicantPostback(NetType netType,const sptr<EapData> & eapData)97     int32_t OnEapSupplicantPostback(NetType netType, const sptr<EapData> &eapData) override
98     {
99         return 0;
100     }
101 };
102 
103 static inline sptr<INetRegisterEapCallback> g_registerEapCallback = new (std::nothrow) NetRegisterEapCallbackTest();
104 static inline sptr<INetEapPostbackCallback> g_eapPostbackCallback = new (std::nothrow) NetEapPostBackCallbackTest();
105 
GetStringFromData(int strlen)106 std::string GetStringFromData(int strlen)
107 {
108     char cstr[strlen];
109     cstr[strlen - 1] = '\0';
110     for (int i = 0; i < strlen - 1; i++) {
111         cstr[i] = GetData<char>();
112     }
113     std::string str(cstr);
114     return str;
115 }
116 
117 static bool g_isInited = false;
118 
Init()119 void Init()
120 {
121     if (!g_isInited) {
122         DelayedSingleton<EthernetService>::GetInstance()->Init();
123         g_isInited = true;
124     }
125 }
126 
WriteInterfaceToken(MessageParcel & data)127 bool WriteInterfaceToken(MessageParcel &data)
128 {
129     if (!data.WriteInterfaceToken(EthernetServiceStub::GetDescriptor())) {
130         return false;
131     }
132     return true;
133 }
134 
IsDataAndWriteVaild(const uint8_t * data,size_t size,MessageParcel & parcel)135 bool IsDataAndWriteVaild(const uint8_t *data, size_t size, MessageParcel &parcel)
136 {
137     if ((data == nullptr) || (size == 0)) {
138         return false;
139     }
140     NetManagerExtAccessToken token;
141     g_baseFuzzData = data;
142     g_baseFuzzSize = size;
143     g_baseFuzzPos = 0;
144 
145     std::u16string iface = Str8ToStr16(GetStringFromData(IFACE_LEN));
146     WriteInterfaceToken(parcel);
147     if (!parcel.WriteString16(iface)) {
148         return false;
149     }
150 
151     return true;
152 }
153 
OnRemoteRequest(uint32_t code,MessageParcel & data)154 int32_t OnRemoteRequest(uint32_t code, MessageParcel &data)
155 {
156     if (!g_isInited) {
157         Init();
158     }
159 
160     MessageParcel reply;
161     MessageOption option;
162     return DelayedSingleton<EthernetService>::GetInstance()->OnRemoteRequest(code, data, reply, option);
163 }
164 
GetMacAddressFuzzTest(const uint8_t * data,size_t size)165 void GetMacAddressFuzzTest(const uint8_t *data, size_t size)
166 {
167     if ((data == nullptr) || (size == 0)) {
168         return;
169     }
170     g_baseFuzzData = data;
171     g_baseFuzzSize = size;
172     g_baseFuzzPos = 0;
173     NetManagerExtAccessToken token;
174     MessageParcel parcel;
175     std::string iface = GetStringFromData(IFACE_LEN);
176     WriteInterfaceToken(parcel);
177     if (!parcel.WriteString(iface)) {
178         return;
179     }
180     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_GET_MAC_ADDRESS), parcel);
181 }
182 
SetIfaceConfigFuzzTest(const uint8_t * data,size_t size)183 void SetIfaceConfigFuzzTest(const uint8_t *data, size_t size)
184 {
185     MessageParcel parcel;
186     if (!IsDataAndWriteVaild(data, size, parcel)) {
187         return;
188     }
189     sptr<InterfaceConfiguration> ic = new (std::nothrow) InterfaceConfiguration();
190     if (!parcel.WriteParcelable(ic)) {
191         return;
192     }
193     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_SET_IFACE_CONFIG), parcel);
194 }
195 
GetIfaceConfigFuzzTest(const uint8_t * data,size_t size)196 void GetIfaceConfigFuzzTest(const uint8_t *data, size_t size)
197 {
198     if ((data == nullptr) || (size == 0)) {
199         return;
200     }
201     g_baseFuzzData = data;
202     g_baseFuzzSize = size;
203     g_baseFuzzPos = 0;
204     NetManagerExtAccessToken token;
205     MessageParcel parcel;
206     std::string iface = GetStringFromData(IFACE_LEN);
207     WriteInterfaceToken(parcel);
208     if (!parcel.WriteString(iface)) {
209         return;
210     }
211     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_GET_IFACE_CONFIG), parcel);
212 }
213 
IsIfaceActiveFuzzTest(const uint8_t * data,size_t size)214 void IsIfaceActiveFuzzTest(const uint8_t *data, size_t size)
215 {
216     if ((data == nullptr) || (size == 0)) {
217         return;
218     }
219     g_baseFuzzData = data;
220     g_baseFuzzSize = size;
221     g_baseFuzzPos = 0;
222     NetManagerExtAccessToken token;
223     MessageParcel parcel;
224     std::string iface = GetStringFromData(IFACE_LEN);
225     WriteInterfaceToken(parcel);
226     if (!parcel.WriteString(iface)) {
227         return;
228     }
229     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_IS_IFACE_ACTIVE), parcel);
230 }
231 
GetAllActiveIfacesFuzzTest(const uint8_t * data,size_t size)232 void GetAllActiveIfacesFuzzTest(const uint8_t *data, size_t size)
233 {
234     if (data == nullptr) {
235         return;
236     }
237     NetManagerExtAccessToken token;
238     MessageParcel parcel;
239     if (!IsDataAndWriteVaild(data, size, parcel)) {
240         return;
241     }
242     WriteInterfaceToken(parcel);
243     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_GET_ALL_ACTIVE_IFACES), parcel);
244 }
245 
ResetFactoryFuzzTest(const uint8_t * data,size_t size)246 void ResetFactoryFuzzTest(const uint8_t *data, size_t size)
247 {
248     if (data == nullptr) {
249         return;
250     }
251     NetManagerExtAccessToken token;
252     MessageParcel parcel;
253     if (!IsDataAndWriteVaild(data, size, parcel)) {
254         return;
255     }
256     WriteInterfaceToken(parcel);
257     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_RESET_FACTORY), parcel);
258 }
259 
UnregisterIfacesStateChangedFuzzTest(const uint8_t * data,size_t size)260 void UnregisterIfacesStateChangedFuzzTest(const uint8_t *data, size_t size)
261 {
262     if ((data == nullptr) || (size == 0)) {
263         return;
264     }
265     NetManagerExtAccessToken token;
266     g_baseFuzzData = data;
267     g_baseFuzzSize = size;
268     g_baseFuzzPos = 0;
269     sptr<InterfaceStateCallback> interfaceCallback = new (std::nothrow) MonitorInterfaceStateCallback();
270     DelayedSingleton<EthernetClient>::GetInstance()->RegisterIfacesStateChanged(interfaceCallback);
271     DelayedSingleton<EthernetClient>::GetInstance()->UnregisterIfacesStateChanged(interfaceCallback);
272 }
273 
OnRegisterIfacesStateChangedFuzzTest(const uint8_t * data,size_t size)274 void OnRegisterIfacesStateChangedFuzzTest(const uint8_t *data, size_t size)
275 {
276     if (data == nullptr) {
277         return;
278     }
279     MessageParcel parcel;
280     if (WriteInterfaceToken(parcel)) {
281         return;
282     }
283     sptr<InterfaceStateCallback> remote = new (std::nothrow) MonitorInterfaceStateCallback();
284     parcel.WriteRemoteObject(remote->AsObject());
285     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_REGISTER_IFACES_STATE_CHANGED), parcel);
286     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_UNREGISTER_IFACES_STATE_CHANGED), parcel);
287 }
288 
SetInterfaceUpFuzzTest(const uint8_t * data,size_t size)289 void SetInterfaceUpFuzzTest(const uint8_t *data, size_t size)
290 {
291     MessageParcel parcel;
292     if (!IsDataAndWriteVaild(data, size, parcel)) {
293         return;
294     }
295     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_SET_INTERFACE_UP), parcel);
296 }
297 
SetInterfaceDownFuzzTest(const uint8_t * data,size_t size)298 void SetInterfaceDownFuzzTest(const uint8_t *data, size_t size)
299 {
300     MessageParcel parcel;
301     if (!IsDataAndWriteVaild(data, size, parcel)) {
302         return;
303     }
304     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_SET_INTERFACE_DOWN), parcel);
305 }
306 
GetInterfaceConfigFuzzTest(const uint8_t * data,size_t size)307 void GetInterfaceConfigFuzzTest(const uint8_t *data, size_t size)
308 {
309     MessageParcel parcel;
310     if (!IsDataAndWriteVaild(data, size, parcel)) {
311         return;
312     }
313     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_GET_INTERFACE_CONFIG), parcel);
314 }
315 
SetInterfaceConfigFuzzTest(const uint8_t * data,size_t size)316 void SetInterfaceConfigFuzzTest(const uint8_t *data, size_t size)
317 {
318     if (data == nullptr) {
319         return;
320     }
321     NetManagerExtAccessToken token;
322     g_baseFuzzData = data;
323     g_baseFuzzSize = size;
324     g_baseFuzzPos = 0;
325     MessageParcel parcel;
326     if (!IsDataAndWriteVaild(data, size, parcel)) {
327         return;
328     }
329     ConfigurationParcelIpc randObj;
330     randObj.ifName_ = GetStringFromData(IFACE_LEN);
331     randObj.hwAddr_ = GetStringFromData(IFACE_LEN);
332     randObj.ipv4Addr_ = GetStringFromData(IFACE_LEN);
333     if (!parcel.WriteParcelable(&randObj)) {
334         return;
335     }
336     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_SET_INTERFACE_CONFIG), parcel);
337 }
338 
EthernetServiceCommonFuzzTest(const uint8_t * data,size_t size)339 void EthernetServiceCommonFuzzTest(const uint8_t *data, size_t size)
340 {
341     if ((data == nullptr) || (size == 0)) {
342         return;
343     }
344     g_baseFuzzData = data;
345     g_baseFuzzSize = size;
346     g_baseFuzzPos = 0;
347 
348     auto ethernetServiceCommon = std::make_unique<EthernetServiceCommon>();
349 
350     ethernetServiceCommon->ResetEthernetFactory();
351 }
352 
RegCustomEapHandlerFuzzTest(const uint8_t * data,size_t size)353 void RegCustomEapHandlerFuzzTest(const uint8_t *data, size_t size)
354 {
355     if (data == nullptr) {
356         return;
357     }
358     g_baseFuzzData = data;
359     g_baseFuzzSize = size;
360     g_baseFuzzPos = 0;
361     MessageParcel parcel;
362     uint32_t netType = GetData<uint32_t>();
363     std::string regCmd = GetStringFromData(REG_CMD_LEN);
364     WriteInterfaceToken(parcel);
365     if (!parcel.WriteUint32(netType)) {
366         return;
367     }
368     if (!parcel.WriteString(regCmd)) {
369         return;
370     }
371     if (!parcel.WriteRemoteObject(g_eapPostbackCallback->AsObject())) {
372         return;
373     }
374     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_REG_CUSTOM_EAP_HANDLER), parcel);
375 }
376 
ReplyCustomEapDataFuzzTest(const uint8_t * data,size_t size)377 void ReplyCustomEapDataFuzzTest(const uint8_t *data, size_t size)
378 {
379     if (data == nullptr) {
380         return;
381     }
382     g_baseFuzzData = data;
383     g_baseFuzzSize = size;
384     g_baseFuzzPos = 0;
385     MessageParcel parcel;
386     uint32_t result = GetData<uint32_t>();
387     WriteInterfaceToken(parcel);
388     if (!parcel.WriteUint32(result)) {
389         return;
390     }
391 
392     sptr<EapData> eapData = new (std::nothrow) EapData();
393     eapData->eapCode = GetData<uint32_t>();
394     eapData->eapType = GetData<uint32_t>();
395     eapData->msgId = GetData<uint32_t>();
396     eapData->bufferLen = GetData<uint32_t>() % REG_CMD_LEN;
397     std::vector<uint8_t> tmp = {0x11, 0x12, 0x13};
398     eapData->eapBuffer = tmp;
399     eapData->Marshalling(parcel);
400     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_REPLY_CUSTOM_EAP_DATA), parcel);
401 }
402 
RegisterCustomEapCallbackFuzzTest(const uint8_t * data,size_t size)403 void RegisterCustomEapCallbackFuzzTest(const uint8_t *data, size_t size)
404 {
405     if (data == nullptr) {
406         return;
407     }
408     g_baseFuzzData = data;
409     g_baseFuzzSize = size;
410     g_baseFuzzPos = 0;
411     MessageParcel parcel;
412     uint32_t netType = GetData<uint32_t>();
413     WriteInterfaceToken(parcel);
414     if (!parcel.WriteUint32(netType)) {
415         return;
416     }
417     if (!parcel.WriteRemoteObject(g_registerEapCallback->AsObject())) {
418         return;
419     }
420     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_REGISTER_CUSTOM_EAP_CALLBACK), parcel);
421 }
422 
UnRegisterCustomEapCallbackFuzzTest(const uint8_t * data,size_t size)423 void UnRegisterCustomEapCallbackFuzzTest(const uint8_t *data, size_t size)
424 {
425     if (data == nullptr) {
426         return;
427     }
428     g_baseFuzzData = data;
429     g_baseFuzzSize = size;
430     g_baseFuzzPos = 0;
431     MessageParcel parcel;
432     uint32_t netType = GetData<uint32_t>();
433     WriteInterfaceToken(parcel);
434     if (!parcel.WriteUint32(netType)) {
435         return;
436     }
437     if (!parcel.WriteRemoteObject(g_registerEapCallback->AsObject())) {
438         return;
439     }
440     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_UN_REGISTER_CUSTOM_EAP_CALLBACK), parcel);
441 }
442 
NotifyWpaEapInterceptInfoFuzzTest(const uint8_t * data,size_t size)443 void NotifyWpaEapInterceptInfoFuzzTest(const uint8_t *data, size_t size)
444 {
445     if (data == nullptr) {
446         return;
447     }
448     g_baseFuzzData = data;
449     g_baseFuzzSize = size;
450     g_baseFuzzPos = 0;
451     MessageParcel parcel;
452     uint32_t netType = GetData<uint32_t>();
453     WriteInterfaceToken(parcel);
454     if (!parcel.WriteUint32(netType)) {
455         return;
456     }
457 
458     sptr<EapData> eapData = new (std::nothrow) EapData();
459     eapData->eapCode = GetData<uint32_t>();
460     eapData->eapType = GetData<uint32_t>();
461     eapData->msgId = GetData<uint32_t>();
462     eapData->bufferLen = GetData<uint32_t>();
463     std::vector<uint8_t> tmp = {0x11, 0x12, 0x13};
464     eapData->eapBuffer = tmp;
465     eapData->Marshalling(parcel);
466     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_NOTIFY_WPA_EAP_INTERCEPT_INFO), parcel);
467 }
468 
GetDeviceInformationFuzzTest(const uint8_t * data,size_t size)469 void GetDeviceInformationFuzzTest(const uint8_t *data, size_t size)
470 {
471     if ((data == nullptr) || (size == 0)) {
472         return;
473     }
474     g_baseFuzzData = data;
475     g_baseFuzzSize = size;
476     g_baseFuzzPos = 0;
477     NetManagerExtAccessToken token;
478     MessageParcel parcel;
479     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_GET_DEVICE_INFORMATION), parcel);
480 }
481 
482 
StartEthEapFuzzTest(const uint8_t * data,size_t size)483 void StartEthEapFuzzTest(const uint8_t *data, size_t size)
484 {
485     if ((data == nullptr) || (size == 0)) {
486         return;
487     }
488     g_baseFuzzData = data;
489     g_baseFuzzSize = size;
490     g_baseFuzzPos = 0;
491     MessageParcel parcel;
492     int32_t netId = GetData<int32_t>();
493     std::unique_ptr<EthEapProfile> profile = std::make_unique<EthEapProfile>();
494     WriteInterfaceToken(parcel);
495     if (!parcel.WriteInt32(netId)) {
496         return;
497     }
498     if (!profile->Marshalling(parcel)) {
499         return;
500     }
501     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_START_ETH_EAP), parcel);
502 }
503 
LogOffEthEapFuzzTest(const uint8_t * data,size_t size)504 void LogOffEthEapFuzzTest(const uint8_t *data, size_t size)
505 {
506     if ((data == nullptr) || (size == 0)) {
507         return;
508     }
509     g_baseFuzzData = data;
510     g_baseFuzzSize = size;
511     g_baseFuzzPos = 0;
512     MessageParcel parcel;
513     int32_t netId = GetData<int32_t>();
514     WriteInterfaceToken(parcel);
515     if (!parcel.WriteInt32(netId)) {
516         return;
517     }
518     OnRemoteRequest(static_cast<uint32_t>(IEthernetServiceIpcCode::COMMAND_LOG_OFF_ETH_EAP), parcel);
519 }
520 
EthernetManagementFuzzTest(const uint8_t * data,size_t size)521 void EthernetManagementFuzzTest(const uint8_t *data, size_t size)
522 {
523     if ((data == nullptr) || (size == 0)) {
524         return;
525     }
526     g_baseFuzzData = data;
527     g_baseFuzzSize = size;
528     g_baseFuzzPos = 0;
529 
530     auto ethernetManagement = std::make_unique<EthernetManagement>();
531     EthernetDhcpCallback::DhcpResult dhcpResult;
532     ethernetManagement->UpdateDevInterfaceLinkInfo(dhcpResult);
533 
534     std::string dev = GetStringFromData(IFACE_LEN);
535     bool up = GetData<uint32_t>() % CREATE_BOOL_TYPE_VALUE == 0;
536     ethernetManagement->UpdateInterfaceState(dev, up);
537 
538     std::string iface = GetStringFromData(IFACE_LEN);
539     std::vector<MacAddressInfo> mai;
540     ethernetManagement->GetMacAddress(mai);
541 
542     sptr<InterfaceConfiguration> cfg;
543     ethernetManagement->UpdateDevInterfaceCfg(iface, cfg);
544 
545     sptr<InterfaceConfiguration> ifaceConfig;
546     ethernetManagement->GetDevInterfaceCfg(iface, ifaceConfig);
547 
548     int32_t activeStatus = 0;
549     ethernetManagement->IsIfaceActive(iface, activeStatus);
550 
551     std::vector<std::string> result;
552     ethernetManagement->GetAllActiveIfaces(result);
553 
554     ethernetManagement->ResetFactory();
555     std::string devName = GetStringFromData(IFACE_LEN);
556     ethernetManagement->DevInterfaceAdd(devName);
557     ethernetManagement->DevInterfaceRemove(devName);
558 
559     std::vector<EthernetDeviceInfo> devInfoList;
560     ethernetManagement->GetDeviceInformation(devInfoList);
561 }
562 
EthernetDhcpControllerFuzzTest(const uint8_t * data,size_t size)563 void EthernetDhcpControllerFuzzTest(const uint8_t *data, size_t size)
564 {
565     if ((data == nullptr) || (size == 0)) {
566         return;
567     }
568     g_baseFuzzData = data;
569     g_baseFuzzSize = size;
570     g_baseFuzzPos = 0;
571 
572     auto ethernetDhcpController = std::make_unique<EthernetDhcpController>();
573 
574     sptr<EthernetDhcpCallback> callback;
575     ethernetDhcpController->RegisterDhcpCallback(callback);
576 
577     std::string iface = GetStringFromData(IFACE_LEN);
578     bool bIpv6 = GetData<uint32_t>() % CREATE_BOOL_TYPE_VALUE == 0;
579     ethernetDhcpController->StartClient(iface, bIpv6);
580 
581     ethernetDhcpController->StopClient(iface, bIpv6);
582 }
583 } // namespace NetManagerStandard
584 } // namespace OHOS
585 
586 /* Fuzzer entry point */
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)587 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
588 {
589     /* Run your code on data */
590     OHOS::NetManagerStandard::SetIfaceConfigFuzzTest(data, size);
591     OHOS::NetManagerStandard::GetIfaceConfigFuzzTest(data, size);
592     OHOS::NetManagerStandard::IsIfaceActiveFuzzTest(data, size);
593     OHOS::NetManagerStandard::GetAllActiveIfacesFuzzTest(data, size);
594     OHOS::NetManagerStandard::ResetFactoryFuzzTest(data, size);
595     OHOS::NetManagerStandard::UnregisterIfacesStateChangedFuzzTest(data, size);
596     OHOS::NetManagerStandard::OnRegisterIfacesStateChangedFuzzTest(data, size);
597     OHOS::NetManagerStandard::SetInterfaceUpFuzzTest(data, size);
598     OHOS::NetManagerStandard::SetInterfaceDownFuzzTest(data, size);
599     OHOS::NetManagerStandard::GetInterfaceConfigFuzzTest(data, size);
600     OHOS::NetManagerStandard::SetInterfaceConfigFuzzTest(data, size);
601     OHOS::NetManagerStandard::EthernetServiceCommonFuzzTest(data, size);
602     OHOS::NetManagerStandard::EthernetManagementFuzzTest(data, size);
603     OHOS::NetManagerStandard::EthernetDhcpControllerFuzzTest(data, size);
604     OHOS::NetManagerStandard::RegCustomEapHandlerFuzzTest(data, size);
605     OHOS::NetManagerStandard::ReplyCustomEapDataFuzzTest(data, size);
606     OHOS::NetManagerStandard::RegisterCustomEapCallbackFuzzTest(data, size);
607     OHOS::NetManagerStandard::UnRegisterCustomEapCallbackFuzzTest(data, size);
608     OHOS::NetManagerStandard::NotifyWpaEapInterceptInfoFuzzTest(data, size);
609     OHOS::NetManagerStandard::GetDeviceInformationFuzzTest(data, size);
610     OHOS::NetManagerStandard::StartEthEapFuzzTest(data, size);
611     OHOS::NetManagerStandard::LogOffEthEapFuzzTest(data, size);
612     return 0;
613 }
614