staging: bcm2835-audio: off by one in snd_bcm2835_playback_open_generic()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 7 Feb 2017 13:17:07 +0000 (16:17 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Feb 2017 12:16:45 +0000 (13:16 +0100)
The > should be >= otherwise we write beyond the end of the array when
we do:

chip->alsa_stream[idx] = alsa_stream;

Fixes: 23b028c871e1 ("staging: bcm2835-audio: initial staging submission")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/bcm2835-audio/bcm2835-pcm.c

index d2d9f9b6a09bfe409fbe3da05dc16ac591977b08..014bf7ab69f48fcf2bf7700da491953fdc394251 100644 (file)
@@ -130,7 +130,7 @@ static int snd_bcm2835_playback_open_generic(
                err = -EBUSY;
                goto out;
        }
-       if (idx > MAX_SUBSTREAMS) {
+       if (idx >= MAX_SUBSTREAMS) {
                audio_error
                        ("substream(%d) device doesn't exist max(%d) substreams allowed\n",
                        idx, MAX_SUBSTREAMS);