mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	[ARM] add address randomization to mmap()
Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
This commit is contained in:
		
							parent
							
								
									990cb8acf2
								
							
						
					
					
						commit
						cc92c28b2d
					
				
					 1 changed files with 4 additions and 0 deletions
				
			
		| 
						 | 
					@ -7,6 +7,7 @@
 | 
				
			||||||
#include <linux/shm.h>
 | 
					#include <linux/shm.h>
 | 
				
			||||||
#include <linux/sched.h>
 | 
					#include <linux/sched.h>
 | 
				
			||||||
#include <linux/io.h>
 | 
					#include <linux/io.h>
 | 
				
			||||||
 | 
					#include <linux/random.h>
 | 
				
			||||||
#include <asm/cputype.h>
 | 
					#include <asm/cputype.h>
 | 
				
			||||||
#include <asm/system.h>
 | 
					#include <asm/system.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -80,6 +81,9 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
 | 
				
			||||||
	        start_addr = addr = TASK_UNMAPPED_BASE;
 | 
						        start_addr = addr = TASK_UNMAPPED_BASE;
 | 
				
			||||||
	        mm->cached_hole_size = 0;
 | 
						        mm->cached_hole_size = 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						/* 8 bits of randomness in 20 address space bits */
 | 
				
			||||||
 | 
						if (current->flags & PF_RANDOMIZE)
 | 
				
			||||||
 | 
							addr += (get_random_int() % (1 << 8)) << PAGE_SHIFT;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
full_search:
 | 
					full_search:
 | 
				
			||||||
	if (do_align)
 | 
						if (do_align)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue