diff options
-rw-r--r-- | fs/compat.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/compat.c b/fs/compat.c index 8c665705c6a0..c2e0813164b4 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
@@ -1619,6 +1619,7 @@ compat_sys_select(int n, compat_ulong_t __user *inp, compat_ulong_t __user *outp | |||
1619 | char *bits; | 1619 | char *bits; |
1620 | long timeout; | 1620 | long timeout; |
1621 | int size, max_fdset, ret = -EINVAL; | 1621 | int size, max_fdset, ret = -EINVAL; |
1622 | struct fdtable *fdt; | ||
1622 | 1623 | ||
1623 | timeout = MAX_SCHEDULE_TIMEOUT; | 1624 | timeout = MAX_SCHEDULE_TIMEOUT; |
1624 | if (tvp) { | 1625 | if (tvp) { |
@@ -1644,7 +1645,8 @@ compat_sys_select(int n, compat_ulong_t __user *inp, compat_ulong_t __user *outp | |||
1644 | goto out_nofds; | 1645 | goto out_nofds; |
1645 | 1646 | ||
1646 | /* max_fdset can increase, so grab it once to avoid race */ | 1647 | /* max_fdset can increase, so grab it once to avoid race */ |
1647 | max_fdset = current->files->max_fdset; | 1648 | fdt = files_fdtable(current->files); |
1649 | max_fdset = fdt->max_fdset; | ||
1648 | if (n > max_fdset) | 1650 | if (n > max_fdset) |
1649 | n = max_fdset; | 1651 | n = max_fdset; |
1650 | 1652 | ||