|
@@ -30,6 +30,7 @@
|
|
#include <linux/sched/mm.h>
|
|
#include <linux/sched/mm.h>
|
|
#include <linux/sched/signal.h>
|
|
#include <linux/sched/signal.h>
|
|
#include <linux/interval_tree_generic.h>
|
|
#include <linux/interval_tree_generic.h>
|
|
|
|
+#include <linux/nospec.h>
|
|
|
|
|
|
#include "vhost.h"
|
|
#include "vhost.h"
|
|
|
|
|
|
@@ -1387,6 +1388,7 @@ long vhost_vring_ioctl(struct vhost_dev *d, unsigned int ioctl, void __user *arg
|
|
if (idx >= d->nvqs)
|
|
if (idx >= d->nvqs)
|
|
return -ENOBUFS;
|
|
return -ENOBUFS;
|
|
|
|
|
|
|
|
+ idx = array_index_nospec(idx, d->nvqs);
|
|
vq = d->vqs[idx];
|
|
vq = d->vqs[idx];
|
|
|
|
|
|
mutex_lock(&vq->mutex);
|
|
mutex_lock(&vq->mutex);
|