mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
wifi: iwlwifi: mvm: fix potential memory leak
[ Upstream commit457d7fb03e] If we do get multiple notifications from firmware, then we might have allocated 'notif', but don't free it. Fix that by checking for duplicates before allocation. Fixes:4da46a06d4("wifi: iwlwifi: mvm: Add support for wowlan info notification") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230418122405.116758321cc4.I8bdbcbb38c89ac637eaa20dda58fa9165b25893a@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0c469078bd
commit
592af07ac0
@@ -2714,6 +2714,13 @@ static bool iwl_mvm_wait_d3_notif(struct iwl_notif_wait_data *notif_wait,
|
|||||||
case WIDE_ID(PROT_OFFLOAD_GROUP, WOWLAN_INFO_NOTIFICATION): {
|
case WIDE_ID(PROT_OFFLOAD_GROUP, WOWLAN_INFO_NOTIFICATION): {
|
||||||
struct iwl_wowlan_info_notif *notif;
|
struct iwl_wowlan_info_notif *notif;
|
||||||
|
|
||||||
|
if (d3_data->notif_received & IWL_D3_NOTIF_WOWLAN_INFO) {
|
||||||
|
/* We might get two notifications due to dual bss */
|
||||||
|
IWL_DEBUG_WOWLAN(mvm,
|
||||||
|
"Got additional wowlan info notification\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (wowlan_info_ver < 2) {
|
if (wowlan_info_ver < 2) {
|
||||||
struct iwl_wowlan_info_notif_v1 *notif_v1 = (void *)pkt->data;
|
struct iwl_wowlan_info_notif_v1 *notif_v1 = (void *)pkt->data;
|
||||||
|
|
||||||
@@ -2732,13 +2739,6 @@ static bool iwl_mvm_wait_d3_notif(struct iwl_notif_wait_data *notif_wait,
|
|||||||
notif = (void *)pkt->data;
|
notif = (void *)pkt->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d3_data->notif_received & IWL_D3_NOTIF_WOWLAN_INFO) {
|
|
||||||
/* We might get two notifications due to dual bss */
|
|
||||||
IWL_DEBUG_WOWLAN(mvm,
|
|
||||||
"Got additional wowlan info notification\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
d3_data->notif_received |= IWL_D3_NOTIF_WOWLAN_INFO;
|
d3_data->notif_received |= IWL_D3_NOTIF_WOWLAN_INFO;
|
||||||
len = iwl_rx_packet_payload_len(pkt);
|
len = iwl_rx_packet_payload_len(pkt);
|
||||||
iwl_mvm_parse_wowlan_info_notif(mvm, notif, d3_data->status,
|
iwl_mvm_parse_wowlan_info_notif(mvm, notif, d3_data->status,
|
||||||
|
|||||||
Reference in New Issue
Block a user