From 4cb3e3a7b5b2347e87747a5544c1f4db62a7be53 Mon Sep 17 00:00:00 2001 From: "John K. Luebs" Date: Sun, 7 Jan 2024 13:33:33 -0600 Subject: [PATCH] aplaymidi: Set event completely for tempo event After UMP support was added in b399fb8 ev.type setting was inadvertently dropped in the code path handling tempo meta event. This is causing tempo meta events to not be handled at all. Moreover, snd_seq_ev_set_fixed is also missing so MIDI files with variable events such as SYSEX before the tempo meta event usually are causing a segfault. Fixes: b399fb85a919 ("aplaymidi: Add UMP support") Closes: https://github.com/alsa-project/alsa-utils/issues/241 Signed-off-by: Takashi Iwai --- seq/aplaymidi/aplaymidi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/seq/aplaymidi/aplaymidi.c b/seq/aplaymidi/aplaymidi.c index a7293d3..66038e2 100644 --- a/seq/aplaymidi/aplaymidi.c +++ b/seq/aplaymidi/aplaymidi.c @@ -819,6 +819,8 @@ static void play_midi(void) ev.time.tick = event->tick; ev.dest = ports[event->port]; if (event->type == SND_SEQ_EVENT_TEMPO) { + snd_seq_ev_set_fixed(&ev); + ev.type = event->type; ev.dest.client = SND_SEQ_CLIENT_SYSTEM; ev.dest.port = SND_SEQ_PORT_SYSTEM_TIMER; ev.data.queue.queue = queue;