|
@@ -26,6 +26,7 @@
|
|
|
#include <linux/pci.h>
|
|
|
#include <linux/module.h>
|
|
|
#include <linux/io.h>
|
|
|
+#include <linux/nospec.h>
|
|
|
|
|
|
#include <sound/core.h>
|
|
|
#include <sound/control.h>
|
|
@@ -2071,9 +2072,10 @@ static int snd_rme9652_channel_info(struct snd_pcm_substream *substream,
|
|
|
if (snd_BUG_ON(info->channel >= RME9652_NCHANNELS))
|
|
|
return -EINVAL;
|
|
|
|
|
|
- if ((chn = rme9652->channel_map[info->channel]) < 0) {
|
|
|
+ chn = rme9652->channel_map[array_index_nospec(info->channel,
|
|
|
+ RME9652_NCHANNELS)];
|
|
|
+ if (chn < 0)
|
|
|
return -EINVAL;
|
|
|
- }
|
|
|
|
|
|
info->offset = chn * RME9652_CHANNEL_BUFFER_BYTES;
|
|
|
info->first = 0;
|