At Wed, 8 Sep 2010 21:36:41 +0200, Dan Carpenter wrote: > > If we pass in a device which is higher than SNDRV_RAWMIDI_DEVICES then > this function just returns device + 1 which isn't helpful. I've > modified it to return -EINVAL instead. > > Also Smatch complains because the "device + 1" could be an integer > overflow. It's harmless, but we may as well silence the warning. > > Signed-off-by: Dan Carpenter <error27@xxxxxxxxx> > --- > V2: In the first version I made negative values return -EINVAL > > diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c > index eb68326..1633bac 100644 > --- a/sound/core/rawmidi.c > +++ b/sound/core/rawmidi.c > @@ -829,6 +829,8 @@ static int snd_rawmidi_control_ioctl(struct snd_card *card, > > if (get_user(device, (int __user *)argp)) > return -EFAULT; > + if (device > SNDRV_RAWMIDI_DEVICES) > + return -EINVAL; This should be "device >= SNDRV_RAWMIDI_DEVICES". Takashi > mutex_lock(®ister_mutex); > device = device < 0 ? 0 : device + 1; > while (device < SNDRV_RAWMIDI_DEVICES) { > -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html