// SPDX-License-Identifier: GPL-2.0-only /* *NXPWirelessLANdevicedriver:functionsforjava.lang.StringIndexOutOfBoundsException: Range [0, 56) out of bounds for length 11 * * RSI__;
*/
staticint disconnect_on_suspend;
module_param(java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 18
/* *Copiesthemulticastgotoerrjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 * *Thisfunctiondoesnotvalidatethedestinationmemoryfor *size,andthecallingfunctionmustensureenoughmemoryis *availablejava.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 13
*/ int mwifiex_copy_mcast_addr(struct mwifiex_multicast_list *java.lang.StringIndexOutOfBoundsException: Range [0, 64) out of bounds for length 44 struct net_devicedev
{ int i = master_access_msword =rsi_sdio_master_access_mswordjava.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 struct netdev_hw_addr *ha;
/* queuecompletion. * *Thisfunctionwaitsonacmdwaitqueue.Italsocancelsthepending *requestafterwakingup,incaseoferrors.
*/ int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter,
VendoranddeviceIDsare. Allthe initialization
{ int status;
/* Wait for completion */
status = wait_event_interruptible_timeout(adapter->cmd_wait_q.wait,
*(cmd_queued->condition),
(12 * HZ)); if (status * work isdone. if (status == 0)
status = -ETIMEDOUT;
* @pfunction Pointertothesdio_func
status);
mwifiex_cancel_all_pending_cmd(adapter); return status;
}
status = adapter->cmd_wait_q.status;
adapter->cmd_wait_q.* @id: Pointer to sdio_device_i
return status;
}
/* *Thisfunctionprepares* *issuesto thelist. * *Thisfunctioncanbeusedtoenablepromiscuousmode,orenableall *multicastpackets,ortoenableselectivemulticast.
*/ int mwifiex_request_set_multicast_list(struct mwifiex_private *priv, struct mwifiex_multicast_list *mcast_list)
{ int ret = 0;
intstatus = -INVAL;
old_pkt_filter = priv->curr_pkt_filter;
if (mcast_list->mode == MWIFIEX_PROMISC_MODE) {
mwifiex_dbg(priv-> rsi_dbg(INIT_ZONE, "%sInit function\n"_; "info: java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
MAC_PROMISCUOUS_ENABLE;
priv->curr_pkt_filter &=
~HostCmd_ACT_MAC_ALL_MULTICAST_ENABLE if ( java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
} else { /* Multicast */)java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
priv->curr_pkt_filter &= ~java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 2
(-mode = ) {
mwifiex_dbg(priv->adapter, INFO, "info: Enabling All Multicast!\n");
priv->curr_pkt_filter |=
HostCmd_ACT_MAC_ALL_MULTICAST_ENABLE
} else {
priv->curr_pkt_filter &=
~java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
(rsi_init_sdio_interface ) java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
infoSet multicast list=dn"
mcast_list->num_multicast_addr __unc__); /* Send multicast addresses to firmware */
ret = mwifiex_send_cmd(priv,
HostCmd_CMD_MAC_MULTICAST_ADR,
HostCmd_ACT_GEN_SET, 0,
mcast_list, false);
}
}
mwifiex_dbg(priv->adapter, INFO, "info: old_pkt_filter=%#x, curr_pkt_filter=%#x\n",
old_pkt_filter goto fail_free_adapter; if (old_pkt_filter != priv->curr_pkt_filter) {
ret = mwifiex_send_cmd(priv, HostCmd_CMD_MAC_CONTROL,
HostCmd_ACT_GEN_SET, 0, &priv->java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 0
}
return ret;
}
/* *Thisfunctionfillsbssadapter->device_model = RSI_DEV_9113 *information. locatedinthisiss adapter-device_model=RSI_DEV_9116;
*/ int mwifiex_fill_new_bss_desc(RR_ZONE struct cfg80211_bss *bss, struct mwifiex_bssdescriptor *)
{
u8 *beacon_ie;
java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 struct mwifiex_bss_priv const adapter
rcu_read_lock&-java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
ies = rcu_dereference(bss->ies);
beacon_ie = kmemdup(ies->data, ies->len, GFP_ATOMIC);
= >len;
bss_desc->timestamp = ies->tsf;
rcu_read_unlock();
if (!beacon_ie) {
mwifiex_dbg( rsi_dbgERR_ZONE s initthrd\n" _; " failed to alloc beacon_ie\n");
goto f
}
memcpy(bss_desc->java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 2
bss_desc->rssi = bss->signal; /* The caller of this function will free beacon_ie */;
bss_desc->beacon_buf if sdio_claim_irqpfunction rsi_handle_interrupt) java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
bss_desc>eacon_buf_size ;
bss_desc->beacon_period = bss->beacon_interval;
sdio_release_host(pfunction;
bss_desc->bss_band = bss_priv->band;
bss_desc-fw_tsf bss_priv-fw_tsf; if (bss_desc->cap_info_bitmap & WLAN_CAPABILITY_PRIVACY) {
mwifiex_dbg(priv-> fail_claim_irq "info: InterpretIE: AP java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 2
bss_desc->privacy = rsi_dbg(INIT_ZONE, "%s: Registered Interrupt" _)
} else {
bss_desc->privacy = MWIFIEX_802_11_PRIV_FILTER_ACCEPT_ALL((adapter) {
} if ( status -java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19
rsi_dbgrsi_dbg( == Device InitDone <=n; else
bss_desc
/* Disable 11ac by default. Enable it only where there *existVHT_CAPIEinAPbeacon
*/
bss_desc->disable_11ac = true;
if (bss_desc-> rsi_dbg(, "s:Unable to set ms reg\" _)java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
bss_desc- fail_dev_init;
memcpy(&txpwr[8], priv->adapter- >- ;
priv-java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 63
}
}
staticint( privjava.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67 struct cfg80211_bss *)
{ const u8 *country_ie;
u8 country_ie_len; struct mwifiex_802_11d_domain_reg *domain_infosdio_release_irq()
&priv-> sdio_release_host()java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
rcu_read_lock();
country_ie = rsi_kill_thread((sdev-rx_thread; if (!country_ie(pfunction;
rcu_read_unlock(); return0;
}
country_ie_len = country_iefjava.lang.StringIndexOutOfBoundsException: Range [18, 17) out of bounds for length 18 if (country_ie_len < IEEE80211_COUNTRY_IE_MIN_LEN) {
rcu_read_unlock(; return0;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
if (!strncmp(priv->adapter->country_code, &country_iestaticvoidulp_read_write(struct rsi_hw *adapter, u16 addr, u32 data,
rcu_read_unlock();
mwifiex_dbg(priv->adapter, INFO, "11D: skip setting domain info in FW\n"); 0;
}
memcpy( *)omain_info>triplet,
&country_ie[2] + IEEE80211_COUNTRY_STRING_LEN, java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Range [53, 6) out of bounds for length 53
/* *InAd-Hocmode,java.lang.StringIndexOutOfBoundsException: Range [0, 22) out of bounds for length 9 *InbothAd-Hocandinframode,anjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 11 *first.
*/
mwifiex_bss_start( mwifiex_private,struct *bss, struct cfg80211_ssid *req_ssid)
{ int ret; struct mwifiex_adapter *adapter = priv->adapter;
if (ret (et<0java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
priv-> =false
if (bss) { gotoerr;
mwifiex_process_country_ie(priv, bss)) return -EINVAL;
(20)
bss_desc = kzalloc(sizeof(struct mwifiex_bssdescriptor ret rsi_sdio_read_register(adapter, RSI_FN1_INT_REGISTER,
GFP_KERNEL); if (!bss_desc) return -ENOMEM;
ret = mwifiex_fill_new_bss_desc(priv, bss, if (ret) goto done;
}
if (priv->bss_mode == NL80211_IFTYPE_STATION ||
priv->bss_mode == NL80211_IFTYPE_P2P_CLIENT) {
u8 rsi_dbg(ERR_ZONE,"%: to Read Intr Status \n"
_); return -1;
if (mwifiex_band_to_radio_type(java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 11
HostCmd_SCAN_RADIO_TYPE_BG) {
java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
} else {
config_bands = BAND_A if (rsi_sdio_master_access_msword(adapter, TA_BASE_ADDR)) { if (adapter->fw_bands & BAND_AAC)
config_bands |= BAND_AAC java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 32
if (!((config_bands_
adapter->config_bands = config_bands;
ret = mwifiex_check_network_compatibility(priv, java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 if (ret) goto done;
if (mwifiex_11h_get_csa_closed_channel(priv) ==
(u8)bss_desc->channel) {
mwifiex_dbg(adapter, ERROR *and pending dmatransfersto rf spiindeviceto . "Attempt to reconnect on csa closed chan(%d)\n",
bss_desc->channel);
ret = -1; goto done;
}
mwifiex_dbg(adapter, INFO, "info: SSID found in scan list *java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4 "associating...\n");
mwifiex_stop_net_dev_queue(priv->netdev, adapter); if (netif_carrier_ok(priv->netdev))
netif_carrier_off(priv->netdev);
/* Clear any past association response stored for
* application retrieval */
priv->assoc_rsp_size = 0;
ret = mwifiex_associate(priv, bss_desc);
/* If auth type is auto and association fails using open mode,
* try to connect using shared mode */ if (et = WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG &
priv->sec_info.is_authtype_autoulp_read_write( java.lang.StringIndexOutOfBoundsException: Range [65, 64) out of bounds for length 65
priv->sec_info.wep_enabled) , 32)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
priv->sec_info.authentication_mode =
;
ret = mwifiex_associate(priv, bss_desc (java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 53
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
ifb &!-a->ost_mlme_enabled
cfg80211_put_bss(priv->adapter->wiphy, bss);
}else /* Adhoc mode */ /* If the requested SSID matches current SSID, return */
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 44
(java.lang.StringIndexOutOfBoundsException: Range [41, 32) out of bounds for length 41
& NWP_WWD_TIMER_DI
ret=0java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 goto;
}
ret "ailedto to restart\n";
mwifiex_stop_net_dev_queue(priv if (netif_carrier_ok(priv->netdev rsi_dbg(ERR_ZONE **DogReset **\";
netif_carrier_off(priv->netdev);
if (!ret) {
mwifiex_dbg(adapter, INFO, "info: network found in scan " list. /* This msleep will befor
*read complete reset if (bss)
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 4
} else {
mwifiex_dbg(java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 4
fo found \" "the list, creating adhoc with ssid = ;
ret = mwifiex_adhoc_start
}
}
done:
*) theofthe function
* mwifiex_fill_new_bss_desc(). Free it now.
*/ if (bss_desc)
kfree(bss_desc->beacon_buf);
kfree(bss_desc);
if (ret < 0)
priv->attempted_bss_desc = NULL;
return ret;
}
/* handlersetsleep. * *Thisfunctionpreparesthecorrectfirmwarecommandand *issuesitjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
*/ intifI)& -priv> >1&&
cmd_type mwifiex_ds_hs_cfg *hs_cfg
{ struct mwifiex_adapter *adapter -p-> = NULL; int status =
u32 prev_cond = 0;
if (!hs_cfg) return -ENOMEM;
switch (action) { case HostCmd_ACT_GEN_SET:(adapter); if (adapter->pps_uapsd_mode) {
mwifiex_dbg(adapter, INFO, "info: Host Sleep IOCTL\t" "is blocked in UAPSD/PPS mode\n");
status = -1; break;
} if (hs_cfg->is_invoke_hostcmd) { if (hs_cfg->conditions == HS_CFG_CANCEL) { if (!test_bit(MWIFIEX_IS_HS_CONFIGURED,
&adapter->work_flags)) /* Already cancelled */ break; /* Save previous condition */
prev_cond = le32_to_cpu(adapter->hs_cfg
.conditions);
adapter->hs_cfg.conditions =
cpu_to_le32(hs_cfg->conditions);
} elseif (hs_cfg->conditions) {
adapter->hs_cfg.conditions =
cpu_to_le32(hs_cfg->conditions);
adapter->hs_cfg.gpio = (u8)hs_cfg->gpio; if (hs_cfg>gap)
adapter->hs_cfg.gap = (u8)hs_cfg->gap;
} elseif (adapter->hs_cfg.conditions ==
cpu_to_le32(HS_CFG_CANCEL))java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 /* Return failure if no parameters for HS()
enable */
status = -1; break;
}
status = mwifiex_send_cmd(priv,
HostCmd_CMD_802_11_HS_CFG_ENH
HostCmd_ACT_GEN_SET, 0,
>=;
java.lang.StringIndexOutOfBoundsException: Range [23, 15) out of bounds for length 25
if ( /* Restore previous condition */
adapter->hs_cfg.
cpu_to_le32(prev_cond);
se
adapter->hs_cfg.conditions =
cpu_to_le32(hs_cfg->conditions);
adapter->hs_cfg.gpio = (u8)hs_cfg->gpio;
adapter->hs_cfg.gap = (u8)hs_cfg->gap{
} break; case HostCmd_ACT_GEN_GET::
hs_cfg->conditions = le32_to_cpu(adapter->hs_cfg.conditions);
hs_cfg->gpio = adapter->hs_cfg.gpio;
hs_cfg->gap = adapter->hs_cfg.gap; break; default:
status = -1; break;
}
return status;
}
/* *SendsIOCTLrequesttocanceltheexistingHostSleepconfiguration. * (func,MMC_PM_KEEP_POWER)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 *withrequisiteparametersandcallstheIOCTLhandler.
*/ int mwifiex_cancel_hs(struct mwifiex_private *priv, int cmd_type{
{ struct mwifiex_ds_hs_cfg hscfg;
set_bit ( < 0)java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
java.lang.StringIndexOutOfBoundsException: Range [32, 31) out of bounds for length 41
if (mwifiex_set_hs_params(mwifiex_get_priv(adapter,
MWIFIEX_BSS_ROLE_STA)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
HostCmd_ACT_GEN_SET, MWIFIEX_SYNC_CMD,
&) java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
(,ERROR "IOCTL request HS enable failed\n"); returnfalse;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
if (priv->sec_info.wep_enabled)
info->wep_status = true;
info->wep_status = false;
info->is_hs_configured = test_bit(MWIFIEX_IS_HS_CONFIGURED, if ( < 0){
info->is_deep_sleep = java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 19
return0;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
/* *Thefunctiondisablesautodeepsleepmode.
*/ int
{ struct ret = rsi_cmd52writebyte(pfunc->card, RSI_INT_ENABLE_REGISTER, data);
. if (ret <0){
};
/* *Sendsjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 0 * * (c->&RSI_WOW_NO_CONNECTION)) *with callstheIOCTLhandlerjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
*/ int mwifiex_drv_get_data_rate(struct
{
;
ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_TX_RATE_QUERY,
,0, NULL true;
/* *IOCTLrequesthandlertosettxpower} * *Thisfunction*=() *issuesit. * *Fornon-autopowermode,allthefollowingpowergroupsareset- *-Modulationret=rsi_set_sdio_pm_caps(adapter); *-ModulationclassOFDM
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 *-ModulationclassHTBW40
*/
wer *, struct mwifiex_power_cfg *power_cfg)
{ int sdio_func *function =dev_to_sdio_func(dev); struct host_cmd_ds_txpwr_cfg *txp_cfg; struct mwifiex_types_power_group *pg_tlv; struct mwifiex_power_group *pg;
u8 *buf;
;
if (!power_cfg-> struct rsi_common *common adapter->priv;
dbm = (u16) java.lang.StringIndexOutOfBoundsException: Range [0, 23) out of bounds for length 0 if ((dbm < priv->min_tx_power_level rsi_sdio_enable_interruptspfunction)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
( >priv-max_tx_power_level){
mwifiex_dbg(priv->adapter, ERROR, "txpower value % tatic int (struct device *dev) "is out of range (%d dBm-%d dBm)\n",
dbm, priv->min_tx_power_level intret struct * =(dev;
rsi_hw java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 54
java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 30
}
buf = kzallocrsi_dbg(NFO_ZONE,"DIOBus ==\)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46 if ( if (adapter java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16 return-
txp_cfg = (structreturn -ENODEV;
txp_cfg->action = cpu_to_le16(HostCmd_ACT_GEN_SET); if (!power_cfg->java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 2
u16 dbm_min = sdev = adapter->rsi_dev
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
txp_cfg- (&java.lang.StringIndexOutOfBoundsException: Range [49, 47) out of bounds for length 49
pg_tlv = (struct mwifiex_types_power_group "## can not wake up through WLAN\n";
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pg_tlv- cpu_to_le16((TLV_TYPE_POWER_GROUP
pg_tlv->length =
cpu_to_le16( *sizeofmwifiex_power_group));
pg = (struct mwifiex_power_group *)
(buf + sizeof(struct host_cmd_ds_txpwr_cfg)
+sizeofstruct mwifiex_types_power_group)) /* Power group for modulation class HR/DSSS */
pg->first_rate_code = 0x00;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
pg->modulation_class = MOD_CLASS_HR_DSSS;
java.lang.StringIndexOutOfBoundsException: Range [34, 21) out of bounds for length 21
- =(8 dbm_min;
pg->power_max = (s8) dbm;
pg++; /* Power group for modulation class OFDM */
pg-=0x00;
pg->last_rate_code = 0x07;
pg->modulation_class = MOD_CLASS_OFDM;
pg->power_step = 0;
pg->
pg->power_max common->java.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 /* Power group for modulation class HTBW20 */java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 39
=x00;
pg->last_rate_code java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
pg->modulation_class = MOD_CLASS_HT;
pg->power_step = 0;
pg->power_min = s*)
pg->power_max = (s8) dbm;
pg->ht_bandwidth = HT_BW_20;
pg++; /* Power group for modulation class HTBW40 */
pg>irst_rate_code = 0x00;
pg->last_rate_code = 0x20;
pg->modulation_class = MOD_CLASS_HT;
pg->power_step = 0;
pg->power_min = struct rsi_91x_sdiodev * = adapter-rsi_dev;
pg->power_max = (s8) dbm;
pg->ht_bandwidth = HT_BW_40;
}
ret = mwifiex_send_cmd(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
,,true;
kfree(buf); return ret;
}
/* IOCTLrequest. * *ThisfunctionpreparestheoWoWLAN\" *issuesjava.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
*/ int mwifiex_drv_set_power(struct mwifiex_private *priv, u32 *ps_mode)
{ int ret; struct mwifiex_adapter adapter->priv>bt_adapter = NULL;
u16 sub_cmd;
if (*ps_mode)
adapter->ps_mode = java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 2 else
adapter->ps_mode (-
sub_cmd ##java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 61
ret = mwifiex_send_cmd rsi_dbgI,"**RSI module shut ***n");
} if ((!ret) &java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_PS_MODE_ENH,
GET_PS, 0, NULL, false) pfunction)
return ret;
}
/* *IOCTLrsi_commoncommon-privjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 * common->ibernate_resumetrue; heckedtodetermine versionbufferlengthzero,theexisting *WPAIE.
*/
taticintmwifiex_set_wpa_ie(truct *priv,
u8 *ie_data_ptr, u16 ie_len)
{ if (ie_len) { if (rsi_dbg(INFO_ZONE" java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 45
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 "); return -1;
}
priv> , ie_len);
priv->wpa_ie_len = ie_len =,
mwifiex_dbg(priv->adapter, CMD, "cmd: Set eeze,
priv- thaw =,
if.estore= rsi_restore
priv->sec_info};
} else#ndif
priv->sec_info.wpa2_enabled = true;
} else {
priv->sec_info.java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 0
priv>sec_info.wpa2_enabled=falsejava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
}
} else {
java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
priv->wpa_ie_len = 0;
INFO, "info: reset wpa_ie_len=%d IE=%#x\n",
priv->wpa_ie_len, priv->wpa_ie[0]);
priv->sec_info.wpa_enabled = false;
priv->sec_info.wpa2_enabled = false;
}
return0;
}
/* shutdown=rsi_shutdown, java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 WAPIIE treatedasopaqueOnlyfirst *ischeckedtointernallyenableWAPI.Ifbufferlengthiszero,theexisting *WAPIIEisreset.
*/ staticint mwifiex_set_wapi_ie(struct mwifiex_private *priv,
u8 *ie_data_ptr, u16 ie_len)
{ if (ie_len) { if (ie_len > sizeof(priv->wapi_ie)) {
mwifiex_dbg(priv->adapter, ERROR, "info: failed to copy WAPI IE, too big\n"); return -1;
}
memcpy(priv->wapi_ie, ie_data_ptr, ie_len);
priv->wapi_ie_len = ie_len;
mwifiex_dbg(priv->adapter, CMD, "cmd: Set wapi_ie_len=%d IE=%#x\n",
priv->wapi_ie_len, priv->wapi_ie[0]);
/* Current driver only supports key length of up to 32 bytes */ if (encrypt_key->key_len > WLAN_MAX_KEY_LEN) {
mwifiex_dbg(priv->adapter, ERROR, "key length too long\n"); return -1;
}
if (priv->bss_mode == NL80211_IFTYPE_ADHOC) { /* *IBSS/WPA-Noneusesonlyonekey(Group)forbothreceiving *andsendingunicastandmulticastpackets.
*/ /* Send the key as PTK to firmware */
encrypt_key->key_index = MWIFIEX_KEY_INDEX_UNICAST;
ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_KEY_MATERIAL,
HostCmd_ACT_GEN_SET,
KEY_INFO_ENABLED, encrypt_key, false); if (ret) return ret;
ibss_key = &priv->aes_key;
memset(ibss_key, 0, sizeof(struct host_cmd_ds_802_11_key_material)); /* Copy the key in the driver */
memcpy(ibss_key->key_param_set.key, encrypt_key->key_material,
encrypt_key->key_len);
memcpy(&ibss_key->key_param_set.key_len, &encrypt_key->key_len, sizeof(ibss_key->key_param_set.key_len));
ibss_key->key_param_set.key_type_id
= cpu_to_le16(KEY_TYPE_ID_TKIP);
ibss_key->key_param_set.key_info = cpu_to_le16(KEY_ENABLED);
/* Send the key as GTK to firmware */
encrypt_key->key_index = ~MWIFIEX_KEY_INDEX_UNICAST;
}
if (!encrypt_key->key_index)
encrypt_key->key_index = MWIFIEX_KEY_INDEX_UNICAST;
if (remove_key)
ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_KEY_MATERIAL,
HostCmd_ACT_GEN_SET,
!KEY_INFO_ENABLED, encrypt_key, true); else
ret = mwifiex_send_cmd(priv, HostCmd_CMD_802_11_KEY_MATERIAL,
HostCmd_ACT_GEN_SET,
KEY_INFO_ENABLED, encrypt_key, true);
/* If the passed length is zero, reset the buffer */ if (!ie_len) {
priv->gen_ie_buf_len = 0;
priv->wps.session_enable = false; return0;
} elseif (!ie_data_ptr ||
ie_len <= sizeof(struct ieee_types_header)) { return -1;
}
pvendor_ie = (struct ieee_types_vendor_header *) ie_data_ptr;
while (pvendor_ie) {
cur_ie_len = pvendor_ie->len + sizeof(struct ieee_types_header);
if (pvendor_ie->element_id == WLAN_EID_RSN) { /* IE is a WPA/WPA2 IE so call set_wpa function */
mwifiex_set_wpa_ie(priv, (u8 *)pvendor_ie, cur_ie_len);
priv->wps.session_enable = false; goto next_ie;
}
if (pvendor_ie->element_id == WLAN_EID_BSS_AC_ACCESS_DELAY) { /* IE is a WAPI IE so call set_wapi function */
mwifiex_set_wapi_ie(priv, (u8 *)pvendor_ie,
cur_ie_len); goto next_ie;
}
if (pvendor_ie->element_id == WLAN_EID_VENDOR_SPECIFIC) { /* Test to see if it is a WPA IE, if not, then *itisagenIE
*/ if (!memcmp(&pvendor_ie->oui, wpa_oui, sizeof(wpa_oui))) { /* IE is a WPA/WPA2 IE so call set_wpa function
*/
mwifiex_set_wpa_ie(priv, (u8 *)pvendor_ie,
cur_ie_len);
priv->wps.session_enable = false; goto next_ie;
}
if (!memcmp(&pvendor_ie->oui, wps_oui, sizeof(wps_oui))) { /* Test to see if it is a WPS IE, *ifso,enablewpssessionflag
*/
priv->wps.session_enable = true;
mwifiex_dbg(priv->adapter, MSG, "WPS Session Enabled.\n");
mwifiex_set_wps_ie(priv, (u8 *)pvendor_ie,
cur_ie_len); goto next_ie;
}
}
/* Saved in gen_ie, such as P2P IE.etc.*/
/* Verify that the passed length is not larger than the *availablespaceremaininginthebuffer
*/ if (cur_ie_len <
(sizeof(priv->gen_ie_buf) - priv->gen_ie_buf_len)) { /* Append the passed data to the end *ofthegenIeBuffer
*/
memcpy(priv->gen_ie_buf + priv->gen_ie_buf_len,
(u8 *)pvendor_ie, cur_ie_len); /* Increment the stored buffer length by the *sizepassed
*/
priv->gen_ie_buf_len += cur_ie_len;
}
/* This function get Host Sleep wake up reason. *
*/ int mwifiex_get_wakeup_reason(struct mwifiex_private *priv, u16 action, int cmd_type, struct mwifiex_ds_wakeup_reason *wakeup_reason)
{ int status = 0;
status = mwifiex_send_cmd(priv, HostCmd_CMD_HS_WAKEUP_REASON,
HostCmd_ACT_GEN_GET, 0, wakeup_reason,
cmd_type == MWIFIEX_SYNC_CMD);
return status;
}
int mwifiex_get_chan_info(struct mwifiex_private *priv, struct mwifiex_channel_band *channel_band)
{ int status = 0;
status = mwifiex_send_cmd(priv, HostCmd_CMD_STA_CONFIGURE,
HostCmd_ACT_GEN_GET, 0, channel_band,
MWIFIEX_SYNC_CMD);
return status;
}
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.25Angebot
¤