mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2026-02-12 04:27:45 -05:00
topology: decoder - add boundary check for channel mixer count
Malicious binary topology file may cause heap corruption. CVE: CVE-2026-25068 Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
bc332f4211
commit
5f7fe33002
1 changed files with 5 additions and 0 deletions
|
|
@ -1250,6 +1250,11 @@ int tplg_decode_control_mixer1(snd_tplg_t *tplg,
|
||||||
if (mc->num_channels > 0) {
|
if (mc->num_channels > 0) {
|
||||||
map = tplg_calloc(heap, sizeof(*map));
|
map = tplg_calloc(heap, sizeof(*map));
|
||||||
map->num_channels = mc->num_channels;
|
map->num_channels = mc->num_channels;
|
||||||
|
if (map->num_channels > SND_TPLG_MAX_CHAN ||
|
||||||
|
map->num_channels > SND_SOC_TPLG_MAX_CHAN) {
|
||||||
|
snd_error(TOPOLOGY, "mixer: unexpected channel count %d", map->num_channels);
|
||||||
|
return -EINVAL;
|
||||||
|
}
|
||||||
for (i = 0; i < map->num_channels; i++) {
|
for (i = 0; i < map->num_channels; i++) {
|
||||||
map->channel[i].reg = mc->channel[i].reg;
|
map->channel[i].reg = mc->channel[i].reg;
|
||||||
map->channel[i].shift = mc->channel[i].shift;
|
map->channel[i].shift = mc->channel[i].shift;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue