qcacld-3.0: Reduce stack frame size in lim_check_rsn_ie

Reduce stack frame size of lim_check_rsn_ie()
by allocating dynamic memory to tSirMacRsnInfo.

Change-Id: I4e65282a765854085cef9ac887716c440a699d84
CRs-Fixed: 2850232
This commit is contained in:
Dundi Raviteja
2020-12-22 18:31:46 +05:30
committed by snandini
parent 7be49de84a
commit 1c569db101

View File

@@ -826,23 +826,30 @@ enum wlan_status_code lim_check_rsn_ie(struct pe_session *session,
bool *pmf_connection)
{
struct wlan_objmgr_vdev *vdev;
tSirMacRsnInfo rsn_ie;
tSirMacRsnInfo *rsn_ie;
struct wlan_crypto_params peer_crypto_params;
rsn_ie.info[0] = WLAN_ELEMID_RSN;
rsn_ie.info[1] = assoc_req->rsn.length;
rsn_ie = qdf_mem_malloc(sizeof(*rsn_ie));
if (!rsn_ie) {
pe_err("malloc failed for rsn_ie");
return STATUS_UNSPECIFIED_FAILURE;
}
rsn_ie.length = assoc_req->rsn.length + 2;
qdf_mem_copy(&rsn_ie.info[2], assoc_req->rsn.info,
rsn_ie->info[0] = WLAN_ELEMID_RSN;
rsn_ie->info[1] = assoc_req->rsn.length;
rsn_ie->length = assoc_req->rsn.length + 2;
qdf_mem_copy(&rsn_ie->info[2], assoc_req->rsn.info,
assoc_req->rsn.length);
if (wlan_crypto_check_rsn_match(mac_ctx->psoc, session->smeSessionId,
&rsn_ie.info[0], rsn_ie.length,
&rsn_ie->info[0], rsn_ie->length,
&peer_crypto_params)) {
vdev = wlan_objmgr_get_vdev_by_id_from_psoc(mac_ctx->psoc,
session->smeSessionId,
WLAN_LEGACY_MAC_ID);
if (!vdev) {
pe_err("vdev is NULL");
qdf_mem_free(rsn_ie);
return STATUS_UNSPECIFIED_FAILURE;
}
if ((peer_crypto_params.rsn_caps &
@@ -851,12 +858,15 @@ enum wlan_status_code lim_check_rsn_ie(struct pe_session *session,
*pmf_connection = true;
wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_MAC_ID);
qdf_mem_free(rsn_ie);
return lim_check_crypto_param(assoc_req, &peer_crypto_params);
} else {
qdf_mem_free(rsn_ie);
return STATUS_INVALID_IE;
}
qdf_mem_free(rsn_ie);
return STATUS_SUCCESS;
}