mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 09:41:03 +02:00
ASoC: SOF: amd: validate SizeFWSigned before signed FW length on ACP7x
The ACP7.B/7.F ACPI signed path already reads SizeFWSigned from the image header into size_fw. Before adding ACP_IMAGE_HEADER_SIZE for SHA DMA, reject payload size zero or any size_fw with size_fw > fw_bin_size - ACP_IMAGE_HEADER_SIZE, so size_fw + ACP_IMAGE_HEADER_SIZE cannot exceed the supplied firmware buffer. Signed-off-by: Vijendar Mukunda <Vijendar.Mukunda@amd.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Link: https://patch.msgid.link/20260701095759.1012929-10-Vijendar.Mukunda@amd.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
d6869ae07d
commit
c04de2d88c
|
|
@ -183,6 +183,13 @@ int acp_dsp_pre_fw_run(struct snd_sof_dev *sdev)
|
|||
}
|
||||
size_fw = get_unaligned_le32(adata->bin_buf +
|
||||
ACP_IMAGE_HDR_SIZE_FW_SIGNED_OFF);
|
||||
if (!size_fw ||
|
||||
size_fw > adata->fw_bin_size - ACP_IMAGE_HEADER_SIZE) {
|
||||
dev_err(sdev->dev,
|
||||
"Invalid signed firmware payload size %u (max %u)\n",
|
||||
size_fw, adata->fw_bin_size - ACP_IMAGE_HEADER_SIZE);
|
||||
return -EINVAL;
|
||||
}
|
||||
size_fw += ACP_IMAGE_HEADER_SIZE;
|
||||
} else {
|
||||
size_fw = adata->fw_bin_size;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user