ALSA: emux: fix validation of snd_emux.num_ports
authorOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Sat, 6 Apr 2024 06:48:16 +0000 (08:48 +0200)
committerTakashi Iwai <tiwai@suse.de>
Sun, 7 Apr 2024 06:35:46 +0000 (08:35 +0200)
Both bounds had off-by-one errors.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Message-ID: <20240406064830.1029573-4-oswald.buddenhagen@gmx.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/synth/emux/emux_seq.c

index b227c7e0bc2ac91fb13553e692fcd77002345125..1adaa75df2f6a4e3a2053b3403935e1b877ae09c 100644 (file)
@@ -65,11 +65,11 @@ snd_emux_init_seq(struct snd_emux *emu, struct snd_card *card, int index)
                return -ENODEV;
        }
 
-       if (emu->num_ports < 0) {
+       if (emu->num_ports <= 0) {
                snd_printk(KERN_WARNING "seqports must be greater than zero\n");
                emu->num_ports = 1;
-       } else if (emu->num_ports >= SNDRV_EMUX_MAX_PORTS) {
-               snd_printk(KERN_WARNING "too many ports."
+       } else if (emu->num_ports > SNDRV_EMUX_MAX_PORTS) {
+               snd_printk(KERN_WARNING "too many ports. "
                           "limited max. ports %d\n", SNDRV_EMUX_MAX_PORTS);
                emu->num_ports = SNDRV_EMUX_MAX_PORTS;
        }