ALSA: seq: Prohibit creating ports with special numbers
authorTakashi Iwai <tiwai@suse.de>
Tue, 23 May 2023 07:53:44 +0000 (09:53 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 23 May 2023 10:11:19 +0000 (12:11 +0200)
Some port numbers are special, such as 254 for subscribers and 255 for
broadcast.  Return error if application tries to create such a port.

Reviewed-by: Jaroslav Kysela <perex@perex.cz>
Link: https://lore.kernel.org/r/20230523075358.9672-24-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/seq/seq_clientmgr.c

index 2dac8c3..0f26f20 100644 (file)
@@ -1206,6 +1206,8 @@ static int snd_seq_ioctl_create_port(struct snd_seq_client *client, void *arg)
                port_idx = info->addr.port;
        else
                port_idx = -1;
+       if (port_idx >= SNDRV_SEQ_ADDRESS_UNKNOWN)
+               return -EINVAL;
        err = snd_seq_create_port(client, port_idx, &port);
        if (err < 0)
                return err;