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: a1a6a4cf49ec ("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:
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user