diff options
| author | HyeongJun An <sammiee5311@gmail.com> | 2026-08-25 21:57:45 +0900 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-08-26 15:56:52 +0100 |
| commit | 14511c9b54ceeeef487409d73947c89ee8563590 (patch) | |
| tree | adb3bb2f0acf64cfabcc93afd20f45999a4f9f98 /tools/perf/scripts/python/bin/stackcollapse-record | |
| parent | 4d6642d64cd00f276549ec2c0b0278aea2f8c1aa (diff) | |
ASoC: dapm: Fix off-by-one check on the second enum channel
The snd_soc_dapm_put_enum_double() rejects item[0] once it reaches
e->items, but it lets item[1] be equal to it. Both go on to
snd_soc_enum_item_to_val(), which indexes e->values with no bound of
its own, so an enum with a value table reads one element past the end.
The indexing arrived with the MUX consolidation, which relaxed the
item[1] check in the same hunk. The value MUX handler it deleted used
>= there, and the snd_soc_put_enum_double() in soc-ops.c still does.
Only adav80x pairs a value table with two shifts, and its second
channel looks accidental, but the control does report two values.
Writing three into it reads off the end of adav80x_mux_values. The
core catches that only under CONFIG_SND_CTL_INPUT_VALIDATION, which
defaults off.
Fixes: 3727b4968453 ("ASoC: dapm: Consolidate MUXs and value MUXs")
Assisted-by: Claude:claude-opus-5
Signed-off-by: HyeongJun An <sammiee5311@gmail.com>
Link: https://patch.msgid.link/20260825125745.932832-1-sammiee5311@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/bin/stackcollapse-record')
0 files changed, 0 insertions, 0 deletions
