• 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 #include "wpa_common_fuzzer.h"
16 
17 #define WLAN_FREQ_MAX_NUM 35
18 #define ETH_ADDR_LEN 6
19 #define BITS_NUM_24 24
20 #define BITS_NUM_16 16
21 #define BITS_NUM_8 8
22 #define REPLY_SIZE 1024
23 
24 static uint32_t g_wpaTestSize = 0;
25 struct IWpaCallback *g_wpaCallbackObj = nullptr;
26 
SetWpaDataSize(const uint32_t * dataSize)27 uint32_t SetWpaDataSize(const uint32_t *dataSize)
28 {
29     if (dataSize != nullptr) {
30         g_wpaTestSize = *dataSize;
31         return HDF_SUCCESS;
32     }
33     HDF_LOGE("%{public}s: set data size failed!", __FUNCTION__);
34     return HDF_FAILURE;
35 }
36 
GetWpaDataSize(uint32_t * dataSize)37 uint32_t GetWpaDataSize(uint32_t *dataSize)
38 {
39     if (dataSize != nullptr) {
40         *dataSize = g_wpaTestSize;
41         return HDF_SUCCESS;
42     }
43     HDF_LOGE("%{public}s: get data size failed!", __FUNCTION__);
44     return HDF_FAILURE;
45 }
46 
Convert2Uint32(const uint8_t * ptr)47 uint32_t Convert2Uint32(const uint8_t *ptr)
48 {
49     if (ptr == nullptr) {
50         return 0;
51     }
52     /*
53      * Move the 0th digit 24 to the left, the first digit 16 to the left, the second digit 8 to the left,
54      * and the third digit no left
55      */
56     return (ptr[0] << BITS_NUM_24) | (ptr[1] << BITS_NUM_16) | (ptr[2] << BITS_NUM_8) | (ptr[3]);
57 }
58 
PreProcessRawData(const uint8_t * rawData,size_t size,uint8_t * tmpRawData,size_t tmpRawDataSize)59 bool PreProcessRawData(const uint8_t *rawData, size_t size, uint8_t *tmpRawData, size_t tmpRawDataSize)
60 {
61     if (rawData == nullptr || tmpRawData == nullptr) {
62         HDF_LOGE("%{public}s: rawData or tmpRawData is nullptr!", __FUNCTION__);
63         return false;
64     }
65     uint32_t dataSize = size - OFFSET;
66     if (memcpy_s(tmpRawData, tmpRawDataSize, rawData + OFFSET, dataSize) != EOK) {
67         HDF_LOGE("%{public}s: memcpy_s failed!", __FUNCTION__);
68         return false;
69     }
70     if (SetWpaDataSize(&dataSize) != HDF_SUCCESS) {
71         HDF_LOGE("%{public}s: set data size failed!", __FUNCTION__);
72         return false;
73     }
74     return true;
75 }
76 
77 /* **********Wpa Interface********** */
FuzzWpaInterfaceStart(struct IWpaInterface * interface,const uint8_t * rawData)78 void FuzzWpaInterfaceStart(struct IWpaInterface *interface, const uint8_t *rawData)
79 {
80     interface->Start(interface);
81     HDF_LOGI("%{public}s: success", __FUNCTION__);
82 }
83 
FuzzWpaInterfaceStop(struct IWpaInterface * interface,const uint8_t * rawData)84 void FuzzWpaInterfaceStop(struct IWpaInterface *interface, const uint8_t *rawData)
85 {
86     interface->Stop(interface);
87     HDF_LOGI("%{public}s: success", __FUNCTION__);
88 }
89 
FuzzWpaInterfaceScan(struct IWpaInterface * interface,const uint8_t * rawData)90 void FuzzWpaInterfaceScan(struct IWpaInterface *interface, const uint8_t *rawData)
91 {
92     const char *ifName = reinterpret_cast<const char *>(rawData);
93 
94     interface->Scan(interface, ifName);
95     HDF_LOGI("%{public}s: success", __FUNCTION__);
96 }
97 
FuzzWpaInterfaceScanResult(struct IWpaInterface * interface,const uint8_t * rawData)98 void FuzzWpaInterfaceScanResult(struct IWpaInterface *interface, const uint8_t *rawData)
99 {
100     const char *ifName = reinterpret_cast<const char *>(rawData);
101     unsigned char buf[ETH_ADDR_LEN] = {0x12, 0x34, 0x56, 0x78, 0xab, 0xcd};
102     uint32_t bufLen = ETH_ADDR_LEN;
103     interface->ScanResult(interface, ifName, buf, &bufLen);
104     HDF_LOGI("%{public}s: success", __FUNCTION__);
105 }
106 
FuzzWpaInterfaceAddNetwork(struct IWpaInterface * interface,const uint8_t * rawData)107 void FuzzWpaInterfaceAddNetwork(struct IWpaInterface *interface, const uint8_t *rawData)
108 {
109     const char *ifName = reinterpret_cast<const char *>(rawData);
110     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
111 
112     interface->AddNetwork(interface, ifName, &networkId);
113     HDF_LOGI("%{public}s: success", __FUNCTION__);
114 }
115 
FuzzWpaInterfaceRemoveNetwork(struct IWpaInterface * interface,const uint8_t * rawData)116 void FuzzWpaInterfaceRemoveNetwork(struct IWpaInterface *interface, const uint8_t *rawData)
117 {
118     const char *ifName = reinterpret_cast<const char *>(rawData);
119     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
120 
121     interface->RemoveNetwork(interface, ifName, networkId);
122     HDF_LOGI("%{public}s: success", __FUNCTION__);
123 }
124 
FuzzWpaInterfaceDisableNetwork(struct IWpaInterface * interface,const uint8_t * rawData)125 void FuzzWpaInterfaceDisableNetwork(struct IWpaInterface *interface, const uint8_t *rawData)
126 {
127     const char *ifName = reinterpret_cast<const char *>(rawData);
128     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
129 
130     interface->DisableNetwork(interface, ifName, networkId);
131     HDF_LOGI("%{public}s: success", __FUNCTION__);
132 }
133 
FuzzWpaInterfaceSetNetwork(struct IWpaInterface * interface,const uint8_t * rawData)134 void FuzzWpaInterfaceSetNetwork(struct IWpaInterface *interface, const uint8_t *rawData)
135 {
136     const char *ifName = reinterpret_cast<const char *>(rawData);
137     const char *name = reinterpret_cast<const char *>(rawData);
138     const char *value = reinterpret_cast<const char *>(rawData);
139     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
140 
141     interface->SetNetwork(interface, ifName, networkId, name, value);
142     HDF_LOGI("%{public}s: success", __FUNCTION__);
143 }
144 
FuzzWpaInterfaceReconnect(struct IWpaInterface * interface,const uint8_t * rawData)145 void FuzzWpaInterfaceReconnect(struct IWpaInterface *interface, const uint8_t *rawData)
146 {
147     const char *ifName = reinterpret_cast<const char *>(rawData);
148 
149     interface->Reconnect(interface, ifName);
150     HDF_LOGI("%{public}s: success", __FUNCTION__);
151 }
152 
FuzzWpaInterfaceDisconnect(struct IWpaInterface * interface,const uint8_t * rawData)153 void FuzzWpaInterfaceDisconnect(struct IWpaInterface *interface, const uint8_t *rawData)
154 {
155     const char *ifName = reinterpret_cast<const char *>(rawData);
156 
157     interface->Disconnect(interface, ifName);
158     HDF_LOGI("%{public}s: success", __FUNCTION__);
159 }
160 
FuzzWpaInterfaceSelectNetwork(struct IWpaInterface * interface,const uint8_t * rawData)161 void FuzzWpaInterfaceSelectNetwork(struct IWpaInterface *interface, const uint8_t *rawData)
162 {
163     const char *ifName = reinterpret_cast<const char *>(rawData);
164     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
165 
166     interface->SelectNetwork(interface, ifName, networkId);
167     HDF_LOGI("%{public}s: success", __FUNCTION__);
168 }
169 
FuzzWpaInterfaceEnableNetwork(struct IWpaInterface * interface,const uint8_t * rawData)170 void FuzzWpaInterfaceEnableNetwork(struct IWpaInterface *interface, const uint8_t *rawData)
171 {
172     const char *ifName = reinterpret_cast<const char *>(rawData);
173     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
174 
175     interface->EnableNetwork(interface, ifName, networkId);
176     HDF_LOGI("%{public}s: success", __FUNCTION__);
177 }
178 
FuzzWpaInterfaceSetPowerSave(struct IWpaInterface * interface,const uint8_t * rawData)179 void FuzzWpaInterfaceSetPowerSave(struct IWpaInterface *interface, const uint8_t *rawData)
180 {
181     const char *ifName = reinterpret_cast<const char *>(rawData);
182     int32_t enable = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
183 
184     interface->SetPowerSave(interface, ifName, enable);
185     HDF_LOGI("%{public}s: success", __FUNCTION__);
186 }
187 
FuzzWpaInterfaceAutoConnect(struct IWpaInterface * interface,const uint8_t * rawData)188 void FuzzWpaInterfaceAutoConnect(struct IWpaInterface *interface, const uint8_t *rawData)
189 {
190     const char *ifName = reinterpret_cast<const char *>(rawData);
191     int32_t enable = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
192 
193     interface->AutoConnect(interface, ifName, enable);
194     HDF_LOGI("%{public}s: success", __FUNCTION__);
195 }
196 
FuzzWpaInterfaceSaveConfig(struct IWpaInterface * interface,const uint8_t * rawData)197 void FuzzWpaInterfaceSaveConfig(struct IWpaInterface *interface, const uint8_t *rawData)
198 {
199     const char *ifName = reinterpret_cast<const char *>(rawData);
200 
201     interface->SaveConfig(interface, ifName);
202     HDF_LOGI("%{public}s: success", __FUNCTION__);
203 }
204 
FuzzWpaInterfaceWpsCancel(struct IWpaInterface * interface,const uint8_t * rawData)205 void FuzzWpaInterfaceWpsCancel(struct IWpaInterface *interface, const uint8_t *rawData)
206 {
207     const char *ifName = reinterpret_cast<const char *>(rawData);
208 
209     interface->WpsCancel(interface, ifName);
210     HDF_LOGI("%{public}s: success", __FUNCTION__);
211 }
212 
FuzzWpaInterfaceGetCountryCode(struct IWpaInterface * interface,const uint8_t * rawData)213 void FuzzWpaInterfaceGetCountryCode(struct IWpaInterface *interface, const uint8_t *rawData)
214 {
215     const char *ifName = reinterpret_cast<const char *>(rawData);
216     char countryCode[3] = {0};
217 
218     interface->GetCountryCode(interface, ifName, countryCode, 3);
219     HDF_LOGI("%{public}s: success", __FUNCTION__);
220 }
221 
FuzzWpaInterfaceGetNetwork(struct IWpaInterface * interface,const uint8_t * rawData)222 void FuzzWpaInterfaceGetNetwork(struct IWpaInterface *interface, const uint8_t *rawData)
223 {
224     const char *ifName = reinterpret_cast<const char *>(rawData);
225     int networkId = 0;
226     char value[32] = {0};
227 
228     interface->GetNetwork(interface, ifName, networkId, "ssid", value, 32);
229     HDF_LOGI("%{public}s: success", __FUNCTION__);
230 }
231 
FuzzWpaInterfaceBlocklistClear(struct IWpaInterface * interface,const uint8_t * rawData)232 void FuzzWpaInterfaceBlocklistClear(struct IWpaInterface *interface, const uint8_t *rawData)
233 {
234     const char *ifName = reinterpret_cast<const char *>(rawData);
235 
236     interface->BlocklistClear(interface, ifName);
237     HDF_LOGI("%{public}s: success", __FUNCTION__);
238 }
239 
FuzzWpaInterfaceSetSuspendMode(struct IWpaInterface * interface,const uint8_t * rawData)240 void FuzzWpaInterfaceSetSuspendMode(struct IWpaInterface *interface, const uint8_t *rawData)
241 {
242     const char *ifName = reinterpret_cast<const char *>(rawData);
243     int32_t mode = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
244 
245     interface->SetSuspendMode(interface, ifName, mode);
246     HDF_LOGI("%{public}s: success", __FUNCTION__);
247 }
248 
FuzzWpaInterfaceGetScanSsid(struct IWpaInterface * interface,const uint8_t * rawData)249 void FuzzWpaInterfaceGetScanSsid(struct IWpaInterface *interface, const uint8_t *rawData)
250 {
251     const char *ifName = reinterpret_cast<const char *>(rawData);
252     int32_t enable = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
253 
254     interface->GetScanSsid(interface, ifName, &enable);
255     HDF_LOGI("%{public}s: success", __FUNCTION__);
256 }
257 
FuzzWpaInterfaceGetPskPassphrase(struct IWpaInterface * interface,const uint8_t * rawData)258 void FuzzWpaInterfaceGetPskPassphrase(struct IWpaInterface *interface, const uint8_t *rawData)
259 {
260     const char *ifName = reinterpret_cast<const char *>(rawData);
261     char psk[32] = {0};
262 
263     interface->GetPskPassphrase(interface, ifName, psk, 32);
264     HDF_LOGI("%{public}s: success", __FUNCTION__);
265 }
266 
FuzzWpaInterfaceGetPsk(struct IWpaInterface * interface,const uint8_t * rawData)267 void FuzzWpaInterfaceGetPsk(struct IWpaInterface *interface, const uint8_t *rawData)
268 {
269     const char *ifName = reinterpret_cast<const char *>(rawData);
270     uint8_t psk[32] = {0};
271     uint32_t pskLen = 32;
272 
273     interface->GetPsk(interface, ifName, psk, &pskLen);
274     HDF_LOGI("%{public}s: success", __FUNCTION__);
275 }
276 
FuzzWpaInterfaceGetWepKey(struct IWpaInterface * interface,const uint8_t * rawData)277 void FuzzWpaInterfaceGetWepKey(struct IWpaInterface *interface, const uint8_t *rawData)
278 {
279     const char *ifName = reinterpret_cast<const char *>(rawData);
280     uint8_t wepKey[16] = {0};
281     uint32_t wepKeyLen = 16;
282 
283     interface->GetWepKey(interface, ifName, 1, wepKey, &wepKeyLen);
284     HDF_LOGI("%{public}s: success", __FUNCTION__);
285 }
286 
FuzzWpaInterfaceGetWepTxKeyIdx(struct IWpaInterface * interface,const uint8_t * rawData)287 void FuzzWpaInterfaceGetWepTxKeyIdx(struct IWpaInterface *interface, const uint8_t *rawData)
288 {
289     const char *ifName = reinterpret_cast<const char *>(rawData);
290     int keyIdx = *const_cast<int *>(reinterpret_cast<const int *>(rawData));
291 
292     interface->GetWepTxKeyIdx(interface, ifName, &keyIdx);
293     HDF_LOGI("%{public}s: success", __FUNCTION__);
294 }
295 
FuzzWpaInterfaceGetRequirePmf(struct IWpaInterface * interface,const uint8_t * rawData)296 void FuzzWpaInterfaceGetRequirePmf(struct IWpaInterface *interface, const uint8_t *rawData)
297 {
298     const char *ifName = reinterpret_cast<const char *>(rawData);
299     int enable = *const_cast<int *>(reinterpret_cast<const int *>(rawData));
300 
301     interface->GetRequirePmf(interface, ifName, &enable);
302     HDF_LOGI("%{public}s: success", __FUNCTION__);
303 }
304 
FuzzWpaInterfaceSetCountryCode(struct IWpaInterface * interface,const uint8_t * rawData)305 void FuzzWpaInterfaceSetCountryCode(struct IWpaInterface *interface, const uint8_t *rawData)
306 {
307     const char *ifName = reinterpret_cast<const char *>(rawData);
308     const char countryCode[3] = {0};
309 
310     interface->SetCountryCode(interface, ifName, countryCode);
311     HDF_LOGI("%{public}s: success", __FUNCTION__);
312 }
313 
FuzzWpaInterfaceListNetworks(struct IWpaInterface * interface,const uint8_t * rawData)314 void FuzzWpaInterfaceListNetworks(struct IWpaInterface *interface, const uint8_t *rawData)
315 {
316     const char *ifName = reinterpret_cast<const char *>(rawData);
317     struct HdiWifiWpaNetworkInfo networkInfo;
318     (void)memset_s(&networkInfo, sizeof(struct HdiWifiWpaNetworkInfo), 0, sizeof(struct HdiWifiWpaNetworkInfo));
319     uint32_t networkInfoLen = 0;
320 
321     interface->ListNetworks(interface, ifName, (struct HdiWifiWpaNetworkInfo *)&networkInfo, &networkInfoLen);
322     HDF_LOGI("%{public}s: success", __FUNCTION__);
323 }
324 
FuzzWpaInterfaceWifiStatus(struct IWpaInterface * interface,const uint8_t * rawData)325 void FuzzWpaInterfaceWifiStatus(struct IWpaInterface *interface, const uint8_t *rawData)
326 {
327     const char *ifName = reinterpret_cast<const char *>(rawData);
328     struct HdiWpaCmdStatus wifiStatus;
329     (void)memset_s(&wifiStatus, sizeof(struct HdiWpaCmdStatus), 0, sizeof(struct HdiWpaCmdStatus));
330 
331     interface->WifiStatus(interface, ifName, &wifiStatus);
332     HDF_LOGI("%{public}s: success", __FUNCTION__);
333 }
334 
FuzzWpaInterfaceWpsPbcMode(struct IWpaInterface * interface,const uint8_t * rawData)335 void FuzzWpaInterfaceWpsPbcMode(struct IWpaInterface *interface, const uint8_t *rawData)
336 {
337     const char *ifName = reinterpret_cast<const char *>(rawData);
338     struct HdiWifiWpsParam wpsParam;
339     (void)memset_s(&wpsParam, sizeof(struct HdiWifiWpsParam), 0, sizeof(struct HdiWifiWpsParam));
340     wpsParam.anyFlag = 1;
341     wpsParam.multiAp = 1;
342     wpsParam.bssidLen = 6;
343     wpsParam.bssid = (uint8_t *)OsalMemCalloc(sizeof(uint8_t) * (wpsParam.bssidLen));
344     wpsParam.bssid[0] = 0x12;
345     wpsParam.bssid[1] = 0x34;
346     wpsParam.bssid[2] = 0x56;
347     wpsParam.bssid[3] = 0x78;
348     wpsParam.bssid[4] = 0xab;
349     wpsParam.bssid[5] = 0xcd;
350 
351     interface->WpsPbcMode(interface, ifName, &wpsParam);
352     HDF_LOGI("%{public}s: success", __FUNCTION__);
353 }
354 
FuzzWpaInterfaceWpsPinMode(struct IWpaInterface * interface,const uint8_t * rawData)355 void FuzzWpaInterfaceWpsPinMode(struct IWpaInterface *interface, const uint8_t *rawData)
356 {
357     const char *ifName = reinterpret_cast<const char *>(rawData);
358     struct HdiWifiWpsParam wpsParam;
359     (void)memset_s(&wpsParam, sizeof(struct HdiWifiWpsParam), 0, sizeof(struct HdiWifiWpsParam));
360     wpsParam.anyFlag = 1;
361     wpsParam.multiAp = 1;
362     wpsParam.bssidLen = 6;
363     wpsParam.bssid = (uint8_t *)OsalMemCalloc(sizeof(uint8_t) * (wpsParam.bssidLen));
364     wpsParam.bssid[0] = 0x12;
365     wpsParam.bssid[1] = 0x34;
366     wpsParam.bssid[2] = 0x56;
367     wpsParam.bssid[3] = 0x78;
368     wpsParam.bssid[4] = 0xab;
369     wpsParam.bssid[5] = 0xcd;
370     int pinCode = 0;
371 
372     interface->WpsPinMode(interface, ifName, &wpsParam, &pinCode);
373     HDF_LOGI("%{public}s: success", __FUNCTION__);
374 }
375 
FuzzWpaInterfaceRegisterEventCallback(struct IWpaInterface * interface,const uint8_t * rawData)376 void FuzzWpaInterfaceRegisterEventCallback(struct IWpaInterface *interface, const uint8_t *rawData)
377 {
378     const char *ifName = reinterpret_cast<const char *>(rawData);
379 
380     interface->RegisterEventCallback(interface, g_wpaCallbackObj, ifName);
381     HDF_LOGI("%{public}s: success", __FUNCTION__);
382 }
383 
FuzzWpaInterfaceUnregisterEventCallback(struct IWpaInterface * interface,const uint8_t * rawData)384 void FuzzWpaInterfaceUnregisterEventCallback(struct IWpaInterface *interface, const uint8_t *rawData)
385 {
386     const char *ifName = reinterpret_cast<const char *>(rawData);
387 
388     interface->UnregisterEventCallback(interface, g_wpaCallbackObj, ifName);
389     HDF_LOGI("%{public}s: success", __FUNCTION__);
390 }
391 
FuzzWpaInterfaceGetConnectionCapabilities(struct IWpaInterface * interface,const uint8_t * rawData)392 void FuzzWpaInterfaceGetConnectionCapabilities(struct IWpaInterface *interface, const uint8_t *rawData)
393 {
394     const char *ifName = reinterpret_cast<const char *>(rawData);
395     struct ConnectionCapabilities connectionCap;
396     (void)memset_s(&connectionCap, sizeof(struct ConnectionCapabilities), 0, sizeof(struct ConnectionCapabilities));
397 
398     interface->GetConnectionCapabilities(interface, ifName, &connectionCap);
399     HDF_LOGI("%{public}s: success", __FUNCTION__);
400 }
401 
FuzzWpaInterfaceAddWpaIface(struct IWpaInterface * interface,const uint8_t * rawData)402 void FuzzWpaInterfaceAddWpaIface(struct IWpaInterface *interface, const uint8_t *rawData)
403 {
404     const char *ifName = reinterpret_cast<const char *>(rawData);
405     const char *configname = "/data/service/el1/public/wifi/wpa_supplicant/wpa_supplicant.conf";
406     interface->AddWpaIface(interface, ifName, configname);
407     HDF_LOGI("%{public}s: success", __FUNCTION__);
408 }
409 
FuzzWpaInterfaceRemoveWpaIface(struct IWpaInterface * interface,const uint8_t * rawData)410 void FuzzWpaInterfaceRemoveWpaIface(struct IWpaInterface *interface, const uint8_t *rawData)
411 {
412     const char *ifName = reinterpret_cast<const char *>(rawData);
413 
414     interface->RemoveWpaIface(interface, ifName);
415     HDF_LOGI("%{public}s: success", __FUNCTION__);
416 }
417 
418 
419 /* **********P2p Interface********** */
FuzzWpaInterfaceP2pSetSsidPostfixName(struct IWpaInterface * interface,const uint8_t * rawData)420 void FuzzWpaInterfaceP2pSetSsidPostfixName(struct IWpaInterface *interface, const uint8_t *rawData)
421 {
422     const char *ifName = reinterpret_cast<const char *>(rawData);
423     const char *name = reinterpret_cast<const char *>(rawData);
424 
425     interface->P2pSetSsidPostfixName(interface, ifName, name);
426     HDF_LOGI("%{public}s: success", __FUNCTION__);
427 }
428 
FuzzWpaInterfaceP2pSetWpsDeviceType(struct IWpaInterface * interface,const uint8_t * rawData)429 void FuzzWpaInterfaceP2pSetWpsDeviceType(struct IWpaInterface *interface, const uint8_t *rawData)
430 {
431     const char *ifName = reinterpret_cast<const char *>(rawData);
432     const char *type = reinterpret_cast<const char *>(rawData);
433 
434     interface->P2pSetWpsDeviceType(interface, ifName, type);
435     HDF_LOGI("%{public}s: success", __FUNCTION__);
436 }
437 
FuzzWpaInterfaceP2pSetWpsConfigMethods(struct IWpaInterface * interface,const uint8_t * rawData)438 void FuzzWpaInterfaceP2pSetWpsConfigMethods(struct IWpaInterface *interface, const uint8_t *rawData)
439 {
440     const char *ifName = reinterpret_cast<const char *>(rawData);
441     const char *methods = reinterpret_cast<const char *>(rawData);
442 
443     interface->P2pSetWpsConfigMethods(interface, ifName, methods);
444     HDF_LOGI("%{public}s: success", __FUNCTION__);
445 }
446 
FuzzWpaInterfaceP2pSetGroupMaxIdle(struct IWpaInterface * interface,const uint8_t * rawData)447 void FuzzWpaInterfaceP2pSetGroupMaxIdle(struct IWpaInterface *interface, const uint8_t *rawData)
448 {
449     const char *ifName = reinterpret_cast<const char *>(rawData);
450     int32_t time = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
451 
452     interface->P2pSetGroupMaxIdle(interface, ifName, time);
453     HDF_LOGI("%{public}s: success", __FUNCTION__);
454 }
455 
FuzzWpaInterfaceP2pSetWfdEnable(struct IWpaInterface * interface,const uint8_t * rawData)456 void FuzzWpaInterfaceP2pSetWfdEnable(struct IWpaInterface *interface, const uint8_t *rawData)
457 {
458     const char *ifName = reinterpret_cast<const char *>(rawData);
459     int32_t enable = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
460 
461     interface->P2pSetWfdEnable(interface, ifName, enable);
462     HDF_LOGI("%{public}s: success", __FUNCTION__);
463 }
464 
FuzzWpaInterfaceP2pSetPersistentReconnect(struct IWpaInterface * interface,const uint8_t * rawData)465 void FuzzWpaInterfaceP2pSetPersistentReconnect(struct IWpaInterface *interface, const uint8_t *rawData)
466 {
467     const char *ifName = reinterpret_cast<const char *>(rawData);
468     int32_t status = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
469 
470     interface->P2pSetPersistentReconnect(interface, ifName, status);
471     HDF_LOGI("%{public}s: success", __FUNCTION__);
472 }
473 
FuzzWpaInterfaceP2pSetWpsSecondaryDeviceType(struct IWpaInterface * interface,const uint8_t * rawData)474 void FuzzWpaInterfaceP2pSetWpsSecondaryDeviceType(struct IWpaInterface *interface, const uint8_t *rawData)
475 {
476     const char *ifName = reinterpret_cast<const char *>(rawData);
477     const char *type = reinterpret_cast<const char *>(rawData);
478 
479     interface->P2pSetWpsSecondaryDeviceType(interface, ifName, type);
480     HDF_LOGI("%{public}s: success", __FUNCTION__);
481 }
482 
FuzzWpaInterfaceP2pSetupWpsPbc(struct IWpaInterface * interface,const uint8_t * rawData)483 void FuzzWpaInterfaceP2pSetupWpsPbc(struct IWpaInterface *interface, const uint8_t *rawData)
484 {
485     const char *ifName = reinterpret_cast<const char *>(rawData);
486     const char *address = reinterpret_cast<const char *>(rawData);
487 
488     interface->P2pSetupWpsPbc(interface, ifName, address);
489     HDF_LOGI("%{public}s: success", __FUNCTION__);
490 }
491 
FuzzWpaInterfaceP2pSetupWpsPin(struct IWpaInterface * interface,const uint8_t * rawData)492 void FuzzWpaInterfaceP2pSetupWpsPin(struct IWpaInterface *interface, const uint8_t *rawData)
493 {
494     const char *ifName = reinterpret_cast<const char *>(rawData);
495     const char *address = reinterpret_cast<const char *>(rawData);
496     const char *pin = reinterpret_cast<const char *>(rawData);
497     char result[32] = {0};
498     uint32_t resultLen = *const_cast<uint32_t *>(reinterpret_cast<const uint32_t *>(rawData));
499 
500 
501     interface->P2pSetupWpsPin(interface, ifName, address, pin, result, resultLen);
502     HDF_LOGI("%{public}s: success", __FUNCTION__);
503 }
504 
FuzzWpaInterfaceP2pSetPowerSave(struct IWpaInterface * interface,const uint8_t * rawData)505 void FuzzWpaInterfaceP2pSetPowerSave(struct IWpaInterface *interface, const uint8_t *rawData)
506 {
507     const char *ifName = reinterpret_cast<const char *>(rawData);
508     int32_t enable = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
509 
510     interface->P2pSetPowerSave(interface, ifName, enable);
511     HDF_LOGI("%{public}s: success", __FUNCTION__);
512 }
513 
FuzzWpaInterfaceP2pSetDeviceName(struct IWpaInterface * interface,const uint8_t * rawData)514 void FuzzWpaInterfaceP2pSetDeviceName(struct IWpaInterface *interface, const uint8_t *rawData)
515 {
516     const char *ifName = reinterpret_cast<const char *>(rawData);
517     const char *name = reinterpret_cast<const char *>(rawData);
518 
519     interface->P2pSetDeviceName(interface, ifName, name);
520     HDF_LOGI("%{public}s: success", __FUNCTION__);
521 }
522 
FuzzWpaInterfaceP2pSetWfdDeviceConfig(struct IWpaInterface * interface,const uint8_t * rawData)523 void FuzzWpaInterfaceP2pSetWfdDeviceConfig(struct IWpaInterface *interface, const uint8_t *rawData)
524 {
525     const char *ifName = reinterpret_cast<const char *>(rawData);
526     const char *config = reinterpret_cast<const char *>(rawData);
527 
528     interface->P2pSetWfdDeviceConfig(interface, ifName, config);
529     HDF_LOGI("%{public}s: success", __FUNCTION__);
530 }
531 
FuzzWpaInterfaceP2pSetRandomMac(struct IWpaInterface * interface,const uint8_t * rawData)532 void FuzzWpaInterfaceP2pSetRandomMac(struct IWpaInterface *interface, const uint8_t *rawData)
533 {
534     const char *ifName = reinterpret_cast<const char *>(rawData);
535     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
536 
537     interface->P2pSetRandomMac(interface, ifName, networkId);
538     HDF_LOGI("%{public}s: success", __FUNCTION__);
539 }
540 
FuzzWpaInterfaceP2pStartFind(struct IWpaInterface * interface,const uint8_t * rawData)541 void FuzzWpaInterfaceP2pStartFind(struct IWpaInterface *interface, const uint8_t *rawData)
542 {
543     const char *ifName = reinterpret_cast<const char *>(rawData);
544     int32_t timeout = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
545 
546     interface->P2pStartFind(interface, ifName, timeout);
547     HDF_LOGI("%{public}s: success", __FUNCTION__);
548 }
549 
FuzzWpaInterfaceP2pSetExtListen(struct IWpaInterface * interface,const uint8_t * rawData)550 void FuzzWpaInterfaceP2pSetExtListen(struct IWpaInterface *interface, const uint8_t *rawData)
551 {
552     const char *ifName = reinterpret_cast<const char *>(rawData);
553     int32_t enable = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
554     int32_t period = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
555     int32_t interval = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
556 
557     interface->P2pSetExtListen(interface, ifName, enable, period, interval);
558     HDF_LOGI("%{public}s: success", __FUNCTION__);
559 }
560 
FuzzWpaInterfaceP2pSetListenChannel(struct IWpaInterface * interface,const uint8_t * rawData)561 void FuzzWpaInterfaceP2pSetListenChannel(struct IWpaInterface *interface, const uint8_t *rawData)
562 {
563     const char *ifName = reinterpret_cast<const char *>(rawData);
564     int32_t channel = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
565     int32_t regClass = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
566 
567     interface->P2pSetListenChannel(interface, ifName, channel, regClass);
568     HDF_LOGI("%{public}s: success", __FUNCTION__);
569 }
570 
FuzzWpaInterfaceP2pProvisionDiscovery(struct IWpaInterface * interface,const uint8_t * rawData)571 void FuzzWpaInterfaceP2pProvisionDiscovery(struct IWpaInterface *interface, const uint8_t *rawData)
572 {
573     const char *ifName = reinterpret_cast<const char *>(rawData);
574     const char *peerBssid = reinterpret_cast<const char *>(rawData);
575     int32_t mode = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
576 
577     interface->P2pProvisionDiscovery(interface, ifName, peerBssid, mode);
578     HDF_LOGI("%{public}s: success", __FUNCTION__);
579 }
580 
FuzzWpaInterfaceP2pAddGroup(struct IWpaInterface * interface,const uint8_t * rawData)581 void FuzzWpaInterfaceP2pAddGroup(struct IWpaInterface *interface, const uint8_t *rawData)
582 {
583     const char *ifName = reinterpret_cast<const char *>(rawData);
584     int32_t isPersistent = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
585     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
586     int32_t freq = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
587 
588     interface->P2pAddGroup(interface, ifName, isPersistent, networkId, freq);
589     HDF_LOGI("%{public}s: success", __FUNCTION__);
590 }
591 
FuzzWpaInterfaceP2pAddService(struct IWpaInterface * interface,const uint8_t * rawData)592 void FuzzWpaInterfaceP2pAddService(struct IWpaInterface *interface, const uint8_t *rawData)
593 {
594     const char *ifName = reinterpret_cast<const char *>(rawData);
595     struct HdiP2pServiceInfo info;
596     (void)memset_s(&info, sizeof(struct HdiP2pServiceInfo), 0, sizeof(struct HdiP2pServiceInfo));
597     info.mode = 0;
598     info.version = 0;
599     const int nameLen = 32;
600     info.nameLen = nameLen;
601     info.name = (uint8_t *)OsalMemCalloc(sizeof(uint8_t) * nameLen);
602     strcpy_s((char *)info.name, sizeof(info.name), "p2p0");
603 
604     interface->P2pAddService(interface, ifName, &info);
605     HDF_LOGI("%{public}s: success", __FUNCTION__);
606 }
607 
FuzzWpaInterfaceP2pRemoveService(struct IWpaInterface * interface,const uint8_t * rawData)608 void FuzzWpaInterfaceP2pRemoveService(struct IWpaInterface *interface, const uint8_t *rawData)
609 {
610     const char *ifName = reinterpret_cast<const char *>(rawData);
611     struct HdiP2pServiceInfo info;
612     (void)memset_s(&info, sizeof(struct HdiP2pServiceInfo), 0, sizeof(struct HdiP2pServiceInfo));
613 
614     interface->P2pRemoveService(interface, ifName, &info);
615     HDF_LOGI("%{public}s: success", __FUNCTION__);
616 }
617 
FuzzWpaInterfaceP2pStopFind(struct IWpaInterface * interface,const uint8_t * rawData)618 void FuzzWpaInterfaceP2pStopFind(struct IWpaInterface *interface, const uint8_t *rawData)
619 {
620     const char *ifName = reinterpret_cast<const char *>(rawData);
621 
622     interface->P2pStopFind(interface, ifName);
623     HDF_LOGI("%{public}s: success", __FUNCTION__);
624 }
625 
FuzzWpaInterfaceP2pFlush(struct IWpaInterface * interface,const uint8_t * rawData)626 void FuzzWpaInterfaceP2pFlush(struct IWpaInterface *interface, const uint8_t *rawData)
627 {
628     const char *ifName = reinterpret_cast<const char *>(rawData);
629 
630     interface->P2pFlush(interface, ifName);
631     HDF_LOGI("%{public}s: success", __FUNCTION__);
632 }
633 
FuzzWpaInterfaceP2pFlushService(struct IWpaInterface * interface,const uint8_t * rawData)634 void FuzzWpaInterfaceP2pFlushService(struct IWpaInterface *interface, const uint8_t *rawData)
635 {
636     const char *ifName = reinterpret_cast<const char *>(rawData);
637 
638     interface->P2pFlushService(interface, ifName);
639     HDF_LOGI("%{public}s: success", __FUNCTION__);
640 }
641 
FuzzWpaInterfaceP2pRemoveNetwork(struct IWpaInterface * interface,const uint8_t * rawData)642 void FuzzWpaInterfaceP2pRemoveNetwork(struct IWpaInterface *interface, const uint8_t *rawData)
643 {
644     const char *ifName = reinterpret_cast<const char *>(rawData);
645     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
646 
647     interface->P2pRemoveNetwork(interface, ifName, networkId);
648     HDF_LOGI("%{public}s: success", __FUNCTION__);
649 }
650 
FuzzWpaInterfaceP2pSetGroupConfig(struct IWpaInterface * interface,const uint8_t * rawData)651 void FuzzWpaInterfaceP2pSetGroupConfig(struct IWpaInterface *interface, const uint8_t *rawData)
652 {
653     const char *ifName = reinterpret_cast<const char *>(rawData);
654     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
655     const char *name = reinterpret_cast<const char *>(rawData);
656     const char *value = reinterpret_cast<const char *>(rawData);
657 
658     interface->P2pSetGroupConfig(interface, ifName, networkId, name, value);
659     HDF_LOGI("%{public}s: success", __FUNCTION__);
660 }
661 
FuzzWpaInterfaceP2pInvite(struct IWpaInterface * interface,const uint8_t * rawData)662 void FuzzWpaInterfaceP2pInvite(struct IWpaInterface *interface, const uint8_t *rawData)
663 {
664     const char *ifName = reinterpret_cast<const char *>(rawData);
665     const char *peerBssid = reinterpret_cast<const char *>(rawData);
666     const char *goBssid = reinterpret_cast<const char *>(rawData);
667 
668     interface->P2pInvite(interface, ifName, peerBssid, goBssid);
669     HDF_LOGI("%{public}s: success", __FUNCTION__);
670 }
671 
FuzzWpaInterfaceP2pReinvoke(struct IWpaInterface * interface,const uint8_t * rawData)672 void FuzzWpaInterfaceP2pReinvoke(struct IWpaInterface *interface, const uint8_t *rawData)
673 {
674     const char *ifName = reinterpret_cast<const char *>(rawData);
675     const char *bssid = reinterpret_cast<const char *>(rawData);
676     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
677 
678     interface->P2pReinvoke(interface, ifName, networkId, bssid);
679     HDF_LOGI("%{public}s: success", __FUNCTION__);
680 }
681 
FuzzWpaInterfaceP2pGetDeviceAddress(struct IWpaInterface * interface,const uint8_t * rawData)682 void FuzzWpaInterfaceP2pGetDeviceAddress(struct IWpaInterface *interface, const uint8_t *rawData)
683 {
684     const char *ifName = reinterpret_cast<const char *>(rawData);
685     char deviceAddress[32] = {0};
686     uint32_t deviceAddressLen = *const_cast<uint32_t *>(reinterpret_cast<const uint32_t *>(rawData));
687 
688     interface->P2pGetDeviceAddress(interface, ifName, deviceAddress, deviceAddressLen);
689     HDF_LOGI("%{public}s: success", __FUNCTION__);
690 }
691 
FuzzWpaInterfaceP2pReqServiceDiscovery(struct IWpaInterface * interface,const uint8_t * rawData)692 void FuzzWpaInterfaceP2pReqServiceDiscovery(struct IWpaInterface *interface, const uint8_t *rawData)
693 {
694     const char *ifName = reinterpret_cast<const char *>(rawData);
695     char *replyDisc = (char *)calloc(REPLY_SIZE, sizeof(char));
696     uint32_t replyDiscLen = REPLY_SIZE;
697     struct HdiP2pReqService reqService;
698     (void)memset_s(&reqService, sizeof(struct HdiP2pReqService), 0, sizeof(struct HdiP2pReqService));
699     reqService.bssidLen = ETH_ADDR_LEN;
700     reqService.bssid = (uint8_t *)OsalMemCalloc(sizeof(uint8_t) * (reqService.bssidLen));
701     reqService.bssid[0] = 0x12;
702     reqService.bssid[1] = 0x34;
703     reqService.bssid[2] = 0x56;
704     reqService.bssid[3] = 0x78;
705     reqService.bssid[4] = 0xab;
706     reqService.bssid[5] = 0xcd;
707 
708     interface->P2pReqServiceDiscovery(interface, ifName, &reqService, replyDisc, replyDiscLen);
709     HDF_LOGI("%{public}s: success", __FUNCTION__);
710 }
711 
FuzzWpaInterfaceP2pCancelServiceDiscovery(struct IWpaInterface * interface,const uint8_t * rawData)712 void FuzzWpaInterfaceP2pCancelServiceDiscovery(struct IWpaInterface *interface, const uint8_t *rawData)
713 {
714     const char *ifName = reinterpret_cast<const char *>(rawData);
715     const char *id = reinterpret_cast<const char *>(rawData);
716 
717     interface->P2pCancelServiceDiscovery(interface, ifName, id);
718     HDF_LOGI("%{public}s: success", __FUNCTION__);
719 }
720 
FuzzWpaInterfaceP2pRespServerDiscovery(struct IWpaInterface * interface,const uint8_t * rawData)721 void FuzzWpaInterfaceP2pRespServerDiscovery(struct IWpaInterface *interface, const uint8_t *rawData)
722 {
723     const char *ifName = reinterpret_cast<const char *>(rawData);
724     struct HdiP2pServDiscReqInfo info;
725     (void)memset_s(&info, sizeof(struct HdiP2pServDiscReqInfo), 0, sizeof(struct HdiP2pServDiscReqInfo));
726 
727     interface->P2pRespServerDiscovery(interface, ifName, &info);
728     HDF_LOGI("%{public}s: success", __FUNCTION__);
729 }
730 
FuzzWpaInterfaceP2pConnect(struct IWpaInterface * interface,const uint8_t * rawData)731 void FuzzWpaInterfaceP2pConnect(struct IWpaInterface *interface, const uint8_t *rawData)
732 {
733     const char *ifName = reinterpret_cast<const char *>(rawData);
734     struct HdiP2pConnectInfo info;
735     (void)memset_s(&info, sizeof(struct HdiP2pConnectInfo), 0, sizeof(struct HdiP2pConnectInfo));
736     char *replyPin = (char *)calloc(REPLY_SIZE, sizeof(char));
737     uint32_t replyPinLen = REPLY_SIZE;
738 
739     interface->P2pConnect(interface, ifName, &info, replyPin, replyPinLen);
740     HDF_LOGI("%{public}s: success", __FUNCTION__);
741 }
742 
FuzzWpaInterfaceP2pHid2dConnect(struct IWpaInterface * interface,const uint8_t * rawData)743 void FuzzWpaInterfaceP2pHid2dConnect(struct IWpaInterface *interface, const uint8_t *rawData)
744 {
745     const char *ifName = reinterpret_cast<const char *>(rawData);
746     struct HdiHid2dConnectInfo info;
747     (void)memset_s(&info, sizeof(struct HdiHid2dConnectInfo), 0, sizeof(struct HdiHid2dConnectInfo));
748 
749     interface->P2pHid2dConnect(interface, ifName, &info);
750     HDF_LOGI("%{public}s: success", __FUNCTION__);
751 }
752 
FuzzWpaInterfaceP2pSetServDiscExternal(struct IWpaInterface * interface,const uint8_t * rawData)753 void FuzzWpaInterfaceP2pSetServDiscExternal(struct IWpaInterface *interface, const uint8_t *rawData)
754 {
755     const char *ifName = reinterpret_cast<const char *>(rawData);
756     int32_t mode = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
757 
758     interface->P2pSetServDiscExternal(interface, ifName, mode);
759     HDF_LOGI("%{public}s: success", __FUNCTION__);
760 }
761 
FuzzWpaInterfaceP2pRemoveGroup(struct IWpaInterface * interface,const uint8_t * rawData)762 void FuzzWpaInterfaceP2pRemoveGroup(struct IWpaInterface *interface, const uint8_t *rawData)
763 {
764     const char *ifName = reinterpret_cast<const char *>(rawData);
765     const char *groupName = reinterpret_cast<const char *>(rawData);
766 
767     interface->P2pRemoveGroup(interface, ifName, groupName);
768     HDF_LOGI("%{public}s: success", __FUNCTION__);
769 }
770 
FuzzWpaInterfaceP2pCancelConnect(struct IWpaInterface * interface,const uint8_t * rawData)771 void FuzzWpaInterfaceP2pCancelConnect(struct IWpaInterface *interface, const uint8_t *rawData)
772 {
773     const char *ifName = reinterpret_cast<const char *>(rawData);
774 
775     interface->P2pCancelConnect(interface, ifName);
776     HDF_LOGI("%{public}s: success", __FUNCTION__);
777 }
778 
FuzzWpaInterfaceP2pGetGroupConfig(struct IWpaInterface * interface,const uint8_t * rawData)779 void FuzzWpaInterfaceP2pGetGroupConfig(struct IWpaInterface *interface, const uint8_t *rawData)
780 {
781     const char *ifName = reinterpret_cast<const char *>(rawData);
782     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
783     const char *param = reinterpret_cast<const char *>(rawData);
784     char value[32] = {0};
785     uint32_t valueLen = *const_cast<uint32_t *>(reinterpret_cast<const uint32_t *>(rawData));
786 
787     interface->P2pGetGroupConfig(interface, ifName, networkId, param, value, valueLen);
788     HDF_LOGI("%{public}s: success", __FUNCTION__);
789 }
790 
FuzzWpaInterfaceP2pAddNetwork(struct IWpaInterface * interface,const uint8_t * rawData)791 void FuzzWpaInterfaceP2pAddNetwork(struct IWpaInterface *interface, const uint8_t *rawData)
792 {
793     const char *ifName = reinterpret_cast<const char *>(rawData);
794     int32_t networkId = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
795 
796     interface->P2pAddNetwork(interface, ifName, &networkId);
797     HDF_LOGI("%{public}s: success", __FUNCTION__);
798 }
799 
FuzzWpaInterfaceP2pGetPeer(struct IWpaInterface * interface,const uint8_t * rawData)800 void FuzzWpaInterfaceP2pGetPeer(struct IWpaInterface *interface, const uint8_t *rawData)
801 {
802     const char *ifName = reinterpret_cast<const char *>(rawData);
803     const char *bssid = reinterpret_cast<const char *>(rawData);
804     struct HdiP2pDeviceInfo info;
805     (void)memset_s(&info, sizeof(struct HdiP2pDeviceInfo), 0, sizeof(struct HdiP2pDeviceInfo));
806 
807     interface->P2pGetPeer(interface, ifName, bssid, &info);
808     HDF_LOGI("%{public}s: success", __FUNCTION__);
809 }
810 
FuzzWpaInterfaceP2pGetGroupCapability(struct IWpaInterface * interface,const uint8_t * rawData)811 void FuzzWpaInterfaceP2pGetGroupCapability(struct IWpaInterface *interface, const uint8_t *rawData)
812 {
813     const char *ifName = reinterpret_cast<const char *>(rawData);
814     const char *bssid = reinterpret_cast<const char *>(rawData);
815     int32_t cap = *const_cast<int32_t *>(reinterpret_cast<const int32_t *>(rawData));
816 
817     interface->P2pGetGroupCapability(interface, ifName, bssid, &cap);
818     HDF_LOGI("%{public}s: success", __FUNCTION__);
819 }
820 
FuzzWpaInterfaceP2pListNetworks(struct IWpaInterface * interface,const uint8_t * rawData)821 void FuzzWpaInterfaceP2pListNetworks(struct IWpaInterface *interface, const uint8_t *rawData)
822 {
823     const char *ifName = reinterpret_cast<const char *>(rawData);
824     struct HdiP2pNetworkList infoList;
825     (void)memset_s(&infoList, sizeof(struct HdiP2pNetworkList), 0, sizeof(struct HdiP2pNetworkList));
826 
827     interface->P2pListNetworks(interface, ifName, &infoList);
828     HDF_LOGI("%{public}s: success", __FUNCTION__);
829 }
830 
FuzzWpaInterfaceP2pSaveConfig(struct IWpaInterface * interface,const uint8_t * rawData)831 void FuzzWpaInterfaceP2pSaveConfig(struct IWpaInterface *interface, const uint8_t *rawData)
832 {
833     const char *ifName = reinterpret_cast<const char *>(rawData);
834 
835     interface->P2pSaveConfig(interface, ifName);
836     HDF_LOGI("%{public}s: success", __FUNCTION__);
837 }
838