typedef struct {
int type;
- char *mac_add;
+ char mac_add[WIFI_MAC_ADDR_LEN + 1];
} net_tdls_discover_s;
typedef struct {
GSList *ssids;
- char vsie[NET_WLAN_MAX_VSIE_LEN+1];
+ char vsie[NET_WLAN_MAX_VSIE_LEN + 1];
} wifi_netlink_scan_s;
/* WIFI Manager */
static void __net_client_clear_cb_data(net_event_info_s *client)
{
if (client && client->Datalength > 0) {
- if (client->Event == NET_EVENT_WIFI_TDLS_DISCOVERED_IND) {
- net_tdls_discover_s *discover_info = client->Data;
-
- if (discover_info != NULL)
- g_free(discover_info->mac_add);
-
- } else if (client->Event == NET_EVENT_WIFI_SPECIFIC_SCAN_IND ||
+ if (client->Event == NET_EVENT_WIFI_SPECIFIC_SCAN_IND ||
client->Event == NET_EVENT_WIFI_BSSID_SCAN_IND ||
client->Event == NET_EVENT_WIFI_NETLINK_SCAN_IND) {
GSList *bss_info_list = client->Data;
while (g_variant_iter_loop(iter, "{sv}", &key, &value)) {
if (g_strcmp0(key, "peermac") == 0) {
sig_value = g_variant_get_string(value, NULL);
- discover_info.mac_add = g_strdup(sig_value);
+ g_strlcpy(discover_info.mac_add, sig_value, WIFI_MAC_ADDR_LEN + 1);
WIFI_LOG(WIFI_INFO, "TDLS discovered Peer Mac Address: %s", discover_info.mac_add);
} else if (g_strcmp0(key, "discover_type") == 0) {
local_handle->tdls_discovered_user_data);
}
}
- g_free(discover_info->mac_add);
}