linux/sound/core/seq
Kyle Zeng 2b5ff4db5d ALSA: seq: dummy: fix UMP event stack overread
The dummy sequencer port forwards events by copying an incoming
struct snd_seq_event into a stack temporary, rewriting source and
destination, and dispatching the temporary to subscribers. That legacy
event storage is smaller than struct snd_seq_ump_event.

When a UMP event reaches the dummy client, the copy leaves the UMP flag
set but only provides legacy-sized stack storage. The subscriber
delivery path then uses snd_seq_event_packet_size() and copies a
UMP-sized packet from that stack object, reading past the end of the
temporary.

Use the existing union __snd_seq_event storage and copy the packet size
reported for the incoming event before rewriting the common routing
fields. This preserves the full UMP packet for UMP events while keeping
legacy event handling unchanged.

Fixes: 32cb23a0f9 ("ALSA: seq: dummy: Allow UMP conversion")
Signed-off-by: Kyle Zeng <kylebot@openai.com>
Link: https://patch.msgid.link/20260605080204.32045-1-kylebot@openai.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
History 2026-06-05 10:08:57 +02:00
..
oss ALSA: seq_oss: return full count for successful SEQ_FULLSIZE writes 2026-03-27 14:40:24 +01:00
Kconfig ALSA: seq: Make dependency on UMP clearer 2025-01-01 13:56:48 +01:00
Makefile ALSA: core: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:32 +02:00
seq.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
seq_clientmgr.c ALSA: seq: Fix UMP group 16 filtering 2026-05-06 09:56:54 +02:00
seq_clientmgr.h ALSA: seq: Fix UMP group 16 filtering 2026-05-06 09:56:54 +02:00
seq_compat.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
seq_dummy.c ALSA: seq: dummy: fix UMP event stack overread 2026-06-05 10:08:57 +02:00
seq_fifo.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
seq_fifo.h ALSA: seq: Clean up fifo locking with guard 2025-08-29 11:52:36 +02:00
seq_info.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
seq_info.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
seq_lock.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
seq_lock.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
seq_memory.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
seq_memory.h ALSA: seq: Add UMP support 2023-05-23 12:11:21 +02:00
seq_midi.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
seq_midi_emul.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
seq_midi_event.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
seq_ports.c ALSA: seq: avoid past-the-end iterator in snd_seq_create_port() 2026-05-19 07:39:06 +02:00
seq_ports.h ALSA: seq: Clean up port locking with auto cleanup 2025-08-29 11:52:35 +02:00
seq_prioq.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
seq_prioq.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
seq_queue.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
seq_queue.h ALSA: seq: Clean up queue locking with auto cleanup 2025-08-29 11:52:35 +02:00
seq_system.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
seq_system.h ALSA: seq: Notify UMP EP and FB changes 2025-01-12 13:12:21 +01:00
seq_timer.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
seq_timer.h ALSA: seq: Remove unused declarations 2024-08-17 16:32:31 +02:00
seq_ump_client.c ALSA: seq: Serialize UMP output teardown with event_input 2026-05-20 13:10:40 +02:00
seq_ump_convert.c ALSA: core/seq: Optimize the return logic in cc_ev_to_ump_midi2 2026-03-27 14:40:24 +01:00
seq_ump_convert.h ALSA: seq: Fix delivery of UMP events to group ports 2025-05-11 15:58:06 +02:00
seq_virmidi.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00