diff options
author | Richard Fitzgerald <rf@opensource.cirrus.com> | 2024-06-27 16:14:32 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2024-07-01 15:10:25 +0200 |
commit | 2163aff6bebbb752edf73f79700f5e2095f3559e (patch) | |
tree | e70964abb6a9eec19308fc935c3888d766550b34 /sound/soc/sof | |
parent | firmware: cs_dsp: Validate payload length before processing block (diff) | |
download | linux-2163aff6bebbb752edf73f79700f5e2095f3559e.tar.xz linux-2163aff6bebbb752edf73f79700f5e2095f3559e.zip |
firmware: cs_dsp: Prevent buffer overrun when processing V2 alg headers
Check that all fields of a V2 algorithm header fit into the available
firmware data buffer.
The wmfw V2 format introduced variable-length strings in the algorithm
block header. This means the overall header length is variable, and the
position of most fields varies depending on the length of the string
fields. Each field must be checked to ensure that it does not overflow
the firmware data buffer.
As this ia bugfix patch, the fixes avoid making any significant change to
the existing code. This makes it easier to review and less likely to
introduce new bugs.
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: f6bc909e7673 ("firmware: cs_dsp: add driver to support firmware loading on Cirrus Logic DSPs")
Link: https://patch.msgid.link/20240627141432.93056-5-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/sof')
0 files changed, 0 insertions, 0 deletions