diff options
Diffstat (limited to 'mm/nommu.c')
| -rw-r--r-- | mm/nommu.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/mm/nommu.c b/mm/nommu.c index 53cab10fece..4bde489ec43 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -69,9 +69,6 @@ int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;  int sysctl_nr_trim_pages = CONFIG_NOMMU_INITIAL_TRIM_EXCESS;  int heap_stack_gap = 0; -/* amount of vm to protect from userspace access */ -unsigned long mmap_min_addr = CONFIG_DEFAULT_MMAP_MIN_ADDR; -  atomic_long_t mmap_pages_allocated;  EXPORT_SYMBOL(mem_map); @@ -922,6 +919,10 @@ static int validate_mmap_request(struct file *file,  		if (!file->f_op->read)  			capabilities &= ~BDI_CAP_MAP_COPY; +		/* The file shall have been opened with read permission. */ +		if (!(file->f_mode & FMODE_READ)) +			return -EACCES; +  		if (flags & MAP_SHARED) {  			/* do checks for writing, appending and locking */  			if ((prot & PROT_WRITE) &&  |