From: Clemens Ladisch Date: Fri, 10 Aug 2007 07:39:14 +0000 (+0200) Subject: [ALSA] seq_midi_event: prevent running status after system messages X-Git-Tag: v2.6.24-rc1~832^2~199 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=0b664f7206fac9676559e0012d8accc2dc0fc9fd;p=karo-tx-linux.git [ALSA] seq_midi_event: prevent running status after system messages Reset the event type after encoding a system message to prevent any following data bytes from being interpreted as data for a running status system message, which is not allowed in MIDI. Signed-off-by: Clemens Ladisch Signed-off-by: Jaroslav Kysela --- diff --git a/sound/core/seq/seq_midi_event.c b/sound/core/seq/seq_midi_event.c index cb38ff33f628..45ba6fc4646a 100644 --- a/sound/core/seq/seq_midi_event.c +++ b/sound/core/seq/seq_midi_event.c @@ -283,6 +283,8 @@ int snd_midi_event_encode_byte(struct snd_midi_event *dev, int c, ev->flags |= SNDRV_SEQ_EVENT_LENGTH_FIXED; if (status_event[dev->type].encode) /* set data values */ status_event[dev->type].encode(dev, ev); + if (dev->type >= ST_SPECIAL) + dev->type = ST_INVALID; rc = 1; } else if (dev->type == ST_SYSEX) { if (c == MIDI_CMD_COMMON_SYSEX_END ||