wifi: iwlwifi: check for kmemdup() return value in iwl_parse_tlv_firmware()
In 'iwl_parse_tlv_firmware()', check for 'kmemdup()' return value when handling IWL_UCODE_TLV_CURRENT_PC and set the number of parsed entries only if an allocation was successful (just like it does with handling IWL_UCODE_TLV_CMD_VERSIONS above). Compile tested only. Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Acked-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20231009170453.149905-1-dmantipov@yandex.ru Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
89141f9653
commit
3c8aaaa755
@ -1303,10 +1303,12 @@ static int iwl_parse_tlv_firmware(struct iwl_drv *drv,
|
||||
case IWL_UCODE_TLV_CURRENT_PC:
|
||||
if (tlv_len < sizeof(struct iwl_pc_data))
|
||||
goto invalid_tlv_len;
|
||||
drv->trans->dbg.num_pc =
|
||||
tlv_len / sizeof(struct iwl_pc_data);
|
||||
drv->trans->dbg.pc_data =
|
||||
kmemdup(tlv_data, tlv_len, GFP_KERNEL);
|
||||
if (!drv->trans->dbg.pc_data)
|
||||
return -ENOMEM;
|
||||
drv->trans->dbg.num_pc =
|
||||
tlv_len / sizeof(struct iwl_pc_data);
|
||||
break;
|
||||
default:
|
||||
IWL_DEBUG_INFO(drv, "unknown TLV: %d\n", tlv_type);
|
||||
|
Loading…
x
Reference in New Issue
Block a user