|
@@ -45,6 +45,7 @@
|
|
|
|
|
|
#include <asm/kmap_types.h>
|
|
|
#include <linux/uaccess.h>
|
|
|
+#include <linux/nospec.h>
|
|
|
|
|
|
#include "internal.h"
|
|
|
|
|
@@ -1038,6 +1039,7 @@ static struct kioctx *lookup_ioctx(unsigned long ctx_id)
|
|
|
if (!table || id >= table->nr)
|
|
|
goto out;
|
|
|
|
|
|
+ id = array_index_nospec(id, table->nr);
|
|
|
ctx = rcu_dereference(table->table[id]);
|
|
|
if (ctx && ctx->user_id == ctx_id) {
|
|
|
if (percpu_ref_tryget_live(&ctx->users))
|