diff mbox series

ALSA: fireface: Off by one in latter_handle_midi_msg()

Message ID 20190125124418.GA21947@kadam (mailing list archive)
State New, archived
Headers show
Series ALSA: fireface: Off by one in latter_handle_midi_msg() | expand

Commit Message

Dan Carpenter Jan. 25, 2019, 12:44 p.m. UTC
The > should be >= or otherwise we potentially read one element beyond
the end of the ff->tx_midi_substreams[] array.

Fixes: 73f5537fb209 ("ALSA: fireface: support tx MIDI functionality of Fireface UCX")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
 sound/firewire/fireface/ff-protocol-latter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Takashi Sakamoto Jan. 25, 2019, 1:41 p.m. UTC | #1
On Fri, Jan 25, 2019 at 03:44:18PM +0300, Dan Carpenter wrote:
> The > should be >= or otherwise we potentially read one element beyond
> the end of the ff->tx_midi_substreams[] array.
> 
> Fixes: 73f5537fb209 ("ALSA: fireface: support tx MIDI functionality of Fireface UCX")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
>  sound/firewire/fireface/ff-protocol-latter.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/sound/firewire/fireface/ff-protocol-latter.c b/sound/firewire/fireface/ff-protocol-latter.c
> index 817af4447349..438aeed9a1ab 100644
> --- a/sound/firewire/fireface/ff-protocol-latter.c
> +++ b/sound/firewire/fireface/ff-protocol-latter.c
> @@ -275,7 +275,7 @@ static void latter_handle_midi_msg(struct snd_ff *ff, unsigned int offset,
>  	struct snd_rawmidi_substream *substream;
>  	unsigned int len;
>  
> -	if (index > ff->spec->midi_in_ports)
> +	if (index >= ff->spec->midi_in_ports)
>  		return;
>  
>  	switch (data & 0x0000000f) {
> -- 
> 2.17.1
 
Indeed. The value of index is picked up from quadlet data transferred by
device. The range of value is expected to be 0x00 or 0x01, thus this patch is
correct.

Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>


Thanks

Takashi Sakamoto
Takashi Iwai Jan. 25, 2019, 2:52 p.m. UTC | #2
On Fri, 25 Jan 2019 14:41:39 +0100,
Takashi Sakamoto wrote:
> 
> On Fri, Jan 25, 2019 at 03:44:18PM +0300, Dan Carpenter wrote:
> > The > should be >= or otherwise we potentially read one element beyond
> > the end of the ff->tx_midi_substreams[] array.
> > 
> > Fixes: 73f5537fb209 ("ALSA: fireface: support tx MIDI functionality of Fireface UCX")
> > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> > ---
> >  sound/firewire/fireface/ff-protocol-latter.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/sound/firewire/fireface/ff-protocol-latter.c b/sound/firewire/fireface/ff-protocol-latter.c
> > index 817af4447349..438aeed9a1ab 100644
> > --- a/sound/firewire/fireface/ff-protocol-latter.c
> > +++ b/sound/firewire/fireface/ff-protocol-latter.c
> > @@ -275,7 +275,7 @@ static void latter_handle_midi_msg(struct snd_ff *ff, unsigned int offset,
> >  	struct snd_rawmidi_substream *substream;
> >  	unsigned int len;
> >  
> > -	if (index > ff->spec->midi_in_ports)
> > +	if (index >= ff->spec->midi_in_ports)
> >  		return;
> >  
> >  	switch (data & 0x0000000f) {
> > -- 
> > 2.17.1
>  
> Indeed. The value of index is picked up from quadlet data transferred by
> device. The range of value is expected to be 0x00 or 0x01, thus this patch is
> correct.
> 
> Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>

Applied now.  Thanks.


Takashi
diff mbox series

Patch

diff --git a/sound/firewire/fireface/ff-protocol-latter.c b/sound/firewire/fireface/ff-protocol-latter.c
index 817af4447349..438aeed9a1ab 100644
--- a/sound/firewire/fireface/ff-protocol-latter.c
+++ b/sound/firewire/fireface/ff-protocol-latter.c
@@ -275,7 +275,7 @@  static void latter_handle_midi_msg(struct snd_ff *ff, unsigned int offset,
 	struct snd_rawmidi_substream *substream;
 	unsigned int len;
 
-	if (index > ff->spec->midi_in_ports)
+	if (index >= ff->spec->midi_in_ports)
 		return;
 
 	switch (data & 0x0000000f) {