mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 00:24:12 +08:00
ASoC: SOF: ipc4-loader: Verify ext manifest magic number
Firmware image must start with an extended manifest. Add a check to make sure that the image does contain it. The magic number (the first u32 of a firmware image if manifest is present) for an IPC4 image must be 0x31454124 (ASCI "$AE1"). Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Rander Wang <rander.wang@intel.com> Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Link: https://lore.kernel.org/r/20220823124219.927-1-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
1332d2078a
commit
a337c20127
@ -40,6 +40,17 @@ static size_t sof_ipc4_fw_parse_ext_man(struct snd_sof_dev *sdev)
|
||||
|
||||
ext_man_hdr = (struct sof_ext_manifest4_hdr *)fw->data;
|
||||
|
||||
/*
|
||||
* At the start of the firmware image we must have an extended manifest.
|
||||
* Verify that the magic number is correct.
|
||||
*/
|
||||
if (ext_man_hdr->id != SOF_EXT_MAN4_MAGIC_NUMBER) {
|
||||
dev_err(sdev->dev,
|
||||
"Unexpected extended manifest magic number: %#x\n",
|
||||
ext_man_hdr->id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
fw_hdr_offset = ipc4_data->manifest_fw_hdr_offset;
|
||||
if (!fw_hdr_offset)
|
||||
return -EINVAL;
|
||||
|
Loading…
Reference in New Issue
Block a user