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 ®Cmd) 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