diff options
Diffstat (limited to 'include/linux/fdtable.h')
-rw-r--r-- | include/linux/fdtable.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h index 1c65817673db..41615f38bcff 100644 --- a/include/linux/fdtable.h +++ b/include/linux/fdtable.h | |||
@@ -10,6 +10,7 @@ | |||
10 | #include <linux/compiler.h> | 10 | #include <linux/compiler.h> |
11 | #include <linux/spinlock.h> | 11 | #include <linux/spinlock.h> |
12 | #include <linux/rcupdate.h> | 12 | #include <linux/rcupdate.h> |
13 | #include <linux/nospec.h> | ||
13 | #include <linux/types.h> | 14 | #include <linux/types.h> |
14 | #include <linux/init.h> | 15 | #include <linux/init.h> |
15 | #include <linux/fs.h> | 16 | #include <linux/fs.h> |
@@ -82,8 +83,10 @@ static inline struct file *__fcheck_files(struct files_struct *files, unsigned i | |||
82 | { | 83 | { |
83 | struct fdtable *fdt = rcu_dereference_raw(files->fdt); | 84 | struct fdtable *fdt = rcu_dereference_raw(files->fdt); |
84 | 85 | ||
85 | if (fd < fdt->max_fds) | 86 | if (fd < fdt->max_fds) { |
87 | fd = array_index_nospec(fd, fdt->max_fds); | ||
86 | return rcu_dereference_raw(fdt->fd[fd]); | 88 | return rcu_dereference_raw(fdt->fd[fd]); |
89 | } | ||
87 | return NULL; | 90 | return NULL; |
88 | } | 91 | } |
89 | 92 | ||