mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
iwlwifi: pnvm: read EFI data only if long enough
If the data we get from EFI is not even long enough for
the package struct we expect then ignore it entirely.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Fixes: a1a6a4cf49 ("iwlwifi: pnvm: implement reading PNVM from UEFI")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/iwlwifi.20211016114029.33feba783518.I54a5cf33975d0330792b3d208b225d479e168f32@changeid
This commit is contained in:
committed by
Kalle Valo
parent
0f892441d8
commit
e864a77f51
@@ -284,9 +284,13 @@ int iwl_pnvm_load(struct iwl_trans *trans,
|
||||
/* First attempt to get the PNVM from BIOS */
|
||||
package = iwl_uefi_get_pnvm(trans, &len);
|
||||
if (!IS_ERR_OR_NULL(package)) {
|
||||
/* we need only the data */
|
||||
len -= sizeof(*package);
|
||||
data = kmemdup(package->data, len, GFP_KERNEL);
|
||||
if (len >= sizeof(*package)) {
|
||||
/* we need only the data */
|
||||
len -= sizeof(*package);
|
||||
data = kmemdup(package->data, len, GFP_KERNEL);
|
||||
} else {
|
||||
data = NULL;
|
||||
}
|
||||
|
||||
/* free package regardless of whether kmemdup succeeded */
|
||||
kfree(package);
|
||||
|
||||
Reference in New Issue
Block a user