]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ALSA: seq: Check UMP support for midi_version change
authorTakashi Iwai <tiwai@suse.de>
Tue, 31 Dec 2024 14:53:58 +0000 (15:53 +0100)
committerTakashi Iwai <tiwai@suse.de>
Tue, 31 Dec 2024 14:57:01 +0000 (15:57 +0100)
When the kernel is built without UMP support but a user-space app
requires the midi_version > 0, the kernel should return an error.
Otherwise user-space assumes as if it were possible to deal,
eventually hitting serious errors later.

Fixes: 46397622a3fa ("ALSA: seq: Add UMP support")
Cc: <stable@vger.kernel.org>
Link: https://patch.msgid.link/20241231145358.21946-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/seq/seq_clientmgr.c

index 3930e2f9082f425bf4c99428b9ff866cc984cbcf..77b6ac9b5c11bccafe4f4239127225657273c0d3 100644 (file)
@@ -1275,10 +1275,16 @@ static int snd_seq_ioctl_set_client_info(struct snd_seq_client *client,
        if (client->type != client_info->type)
                return -EINVAL;
 
-       /* check validity of midi_version field */
-       if (client->user_pversion >= SNDRV_PROTOCOL_VERSION(1, 0, 3) &&
-           client_info->midi_version > SNDRV_SEQ_CLIENT_UMP_MIDI_2_0)
-               return -EINVAL;
+       if (client->user_pversion >= SNDRV_PROTOCOL_VERSION(1, 0, 3)) {
+               /* check validity of midi_version field */
+               if (client_info->midi_version > SNDRV_SEQ_CLIENT_UMP_MIDI_2_0)
+                       return -EINVAL;
+
+               /* check if UMP is supported in kernel */
+               if (!IS_ENABLED(CONFIG_SND_SEQ_UMP) &&
+                   client_info->midi_version > 0)
+                       return -EINVAL;
+       }
 
        /* fill the info fields */
        if (client_info->name[0])