mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-16 23:45:31 +08:00
ASoC: SOF: Add some bounds checking to firmware data
[ Upstream commit98f681b0f8
] Smatch complains about "head->full_size - head->header_size" can underflow. To some extent, we're always going to have to trust the firmware a bit. However, it's easy enough to add a check for negatives, and let's add a upper bounds check as well. Fixes:d2458baa79
("ASoC: SOF: ipc3-loader: Implement firmware parsing and loading") Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Link: https://msgid.link/r/5593d147-058c-4de3-a6f5-540ecb96f6f8@moroto.mountain Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
c9901903ed
commit
ced7df8b3c
@ -148,6 +148,8 @@ static size_t sof_ipc3_fw_parse_ext_man(struct snd_sof_dev *sdev)
|
||||
|
||||
head = (struct sof_ext_man_header *)fw->data;
|
||||
remaining = head->full_size - head->header_size;
|
||||
if (remaining < 0 || remaining > sdev->basefw.fw->size)
|
||||
return -EINVAL;
|
||||
ext_man_size = ipc3_fw_ext_man_size(sdev, fw);
|
||||
|
||||
/* Assert firmware starts with extended manifest */
|
||||
|
Loading…
Reference in New Issue
Block a user