mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 06:03:36 -04:00
qcacld-3.0: Reduce stack frame size in lim_verify_fils_params_assoc_rsp
Reduce stack frame size of lim_verify_fils_params_assoc_rsp() by allocating dynamic memory to fils structures. Change-Id: Ib24570d87468560f50ee1bcaad360e4729f404aa CRs-Fixed: 2847120
This commit is contained in:
parent
b1a6117b62
commit
7ba97fee58
1 changed files with 21 additions and 11 deletions
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2017-2020 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
|
|
@ -1778,8 +1778,7 @@ bool lim_verify_fils_params_assoc_rsp(struct mac_context *mac_ctx,
|
|||
{
|
||||
struct pe_fils_session *fils_info = session_entry->fils_info;
|
||||
tDot11fIEfils_session fils_session = assoc_rsp->fils_session;
|
||||
tDot11fIEfils_key_confirmation fils_key_auth = assoc_rsp->fils_key_auth;
|
||||
tDot11fIEfils_kde fils_kde = assoc_rsp->fils_kde;
|
||||
tDot11fIEfils_key_confirmation *fils_key_auth;
|
||||
QDF_STATUS status;
|
||||
|
||||
if (!lim_is_fils_connection(session_entry))
|
||||
|
|
@ -1802,28 +1801,39 @@ bool lim_verify_fils_params_assoc_rsp(struct mac_context *mac_ctx,
|
|||
goto verify_fils_params_fails;
|
||||
}
|
||||
|
||||
fils_key_auth = qdf_mem_malloc(sizeof(*fils_key_auth));
|
||||
if (!fils_key_auth)
|
||||
goto verify_fils_params_fails;
|
||||
|
||||
*fils_key_auth = assoc_rsp->fils_key_auth;
|
||||
|
||||
/* Compare FILS key auth */
|
||||
if ((fils_key_auth.num_key_auth != fils_info->key_auth_len) ||
|
||||
qdf_mem_cmp(fils_info->ap_key_auth_data, fils_key_auth.key_auth,
|
||||
fils_info->ap_key_auth_len)) {
|
||||
if (fils_key_auth->num_key_auth != fils_info->key_auth_len ||
|
||||
qdf_mem_cmp(fils_info->ap_key_auth_data,
|
||||
fils_key_auth->key_auth,
|
||||
fils_info->ap_key_auth_len)) {
|
||||
lim_fils_data_dump("session keyauth",
|
||||
fils_info->ap_key_auth_data,
|
||||
fils_info->ap_key_auth_len);
|
||||
lim_fils_data_dump("Pkt keyauth",
|
||||
fils_key_auth.key_auth,
|
||||
fils_key_auth.num_key_auth);
|
||||
fils_key_auth->key_auth,
|
||||
fils_key_auth->num_key_auth);
|
||||
qdf_mem_free(fils_key_auth);
|
||||
goto verify_fils_params_fails;
|
||||
}
|
||||
|
||||
qdf_mem_free(fils_key_auth);
|
||||
|
||||
/* Verify the Key Delivery Element presence */
|
||||
if (!fils_kde.num_kde_list) {
|
||||
if (!assoc_rsp->fils_kde.num_kde_list) {
|
||||
pe_err("FILS KDE list absent");
|
||||
goto verify_fils_params_fails;
|
||||
}
|
||||
|
||||
/* Derive KDE elements */
|
||||
status = lim_parse_kde_elements(mac_ctx, fils_info, fils_kde.kde_list,
|
||||
fils_kde.num_kde_list);
|
||||
status = lim_parse_kde_elements(mac_ctx, fils_info,
|
||||
assoc_rsp->fils_kde.kde_list,
|
||||
assoc_rsp->fils_kde.num_kde_list);
|
||||
if (!QDF_IS_STATUS_SUCCESS(status)) {
|
||||
pe_err("KDE parsing fails");
|
||||
goto verify_fils_params_fails;
|
||||
|
|
|
|||
Loading…
Reference in a new issue