提交 a0eaead4 编写于 作者: S Shahar S Matityahu 提交者: Luca Coelho

iwlwifi: dbg_ini: check for valid region type during regions parsing

Add region type checking during regions parsing to avoid attempts to
parse unsupported or illegal region types.
Signed-off-by: NShahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
上级 0aade8f4
...@@ -2469,15 +2469,20 @@ static void iwl_fw_dbg_update_regions(struct iwl_fw_runtime *fwrt, ...@@ -2469,15 +2469,20 @@ static void iwl_fw_dbg_update_regions(struct iwl_fw_runtime *fwrt,
{ {
void *iter = (void *)tlv->region_config; void *iter = (void *)tlv->region_config;
int i, size = le32_to_cpu(tlv->num_regions); int i, size = le32_to_cpu(tlv->num_regions);
const char *err_st =
"WRT: ext=%d. Invalid region %s %d for apply point %d\n";
for (i = 0; i < size; i++) { for (i = 0; i < size; i++) {
struct iwl_fw_ini_region_cfg *reg = iter, **active; struct iwl_fw_ini_region_cfg *reg = iter, **active;
int id = le32_to_cpu(reg->region_id); int id = le32_to_cpu(reg->region_id);
u32 type = le32_to_cpu(reg->region_type); u32 type = le32_to_cpu(reg->region_type);
if (WARN(id >= ARRAY_SIZE(fwrt->dump.active_regs), if (WARN(id >= ARRAY_SIZE(fwrt->dump.active_regs), err_st, ext,
"WRT: ext=%d. Invalid region id %d for apply point %d\n", "id", id, pnt))
ext, id, pnt)) break;
if (WARN(type == 0 || type >= IWL_FW_INI_REGION_NUM, err_st,
ext, "type", type, pnt))
break; break;
active = &fwrt->dump.active_regs[id]; active = &fwrt->dump.active_regs[id];
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册