diff options
| -rw-r--r-- | kernel/user_namespace.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c index 563a2981d7c7..4f7e357ac1e2 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c | |||
| @@ -683,11 +683,13 @@ static void *m_start(struct seq_file *seq, loff_t *ppos, | |||
| 683 | struct uid_gid_map *map) | 683 | struct uid_gid_map *map) |
| 684 | { | 684 | { |
| 685 | loff_t pos = *ppos; | 685 | loff_t pos = *ppos; |
| 686 | unsigned extents = map->nr_extents; | ||
| 687 | smp_rmb(); | ||
| 686 | 688 | ||
| 687 | if (pos >= map->nr_extents) | 689 | if (pos >= extents) |
| 688 | return NULL; | 690 | return NULL; |
| 689 | 691 | ||
| 690 | if (map->nr_extents <= UID_GID_MAP_MAX_BASE_EXTENTS) | 692 | if (extents <= UID_GID_MAP_MAX_BASE_EXTENTS) |
| 691 | return &map->extent[pos]; | 693 | return &map->extent[pos]; |
| 692 | 694 | ||
| 693 | return &map->forward[pos]; | 695 | return &map->forward[pos]; |
