forked from mirrors/linux
		
	 204db6ed17
			
		
	
	
		204db6ed17
		
	
	
	
	
		
			
			The arch_randomize_brk() function is used on several architectures, even those that don't support ET_DYN ASLR. To avoid bulky extern/#define tricks, consolidate the support under CONFIG_ARCH_HAS_ELF_RANDOMIZE for the architectures that support it, while still handling CONFIG_COMPAT_BRK. Signed-off-by: Kees Cook <keescook@chromium.org> Cc: Hector Marco-Gisbert <hecmargi@upv.es> Cc: Russell King <linux@arm.linux.org.uk> Reviewed-by: Ingo Molnar <mingo@kernel.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will.deacon@arm.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Andy Lutomirski <luto@amacapital.net> Cc: "David A. Long" <dave.long@linaro.org> Cc: Andrey Ryabinin <a.ryabinin@samsung.com> Cc: Arun Chandran <achandran@mvista.com> Cc: Yann Droneaud <ydroneaud@opteya.com> Cc: Min-Hua Chen <orca.chen@gmail.com> Cc: Paul Burton <paul.burton@imgtec.com> Cc: Alex Smith <alex@alex-smith.me.uk> Cc: Markos Chandras <markos.chandras@imgtec.com> Cc: Vineeth Vijayan <vvijayan@mvista.com> Cc: Jeff Bailey <jeffbailey@google.com> Cc: Michael Holzheu <holzheu@linux.vnet.ibm.com> Cc: Ben Hutchings <ben@decadent.org.uk> Cc: Behan Webster <behanw@converseincode.com> Cc: Ismael Ripoll <iripoll@upv.es> Cc: Jan-Simon Mller <dl9pf@gmx.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			544 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			544 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _ELF_RANDOMIZE_H
 | |
| #define _ELF_RANDOMIZE_H
 | |
| 
 | |
| struct mm_struct;
 | |
| 
 | |
| #ifndef CONFIG_ARCH_HAS_ELF_RANDOMIZE
 | |
| static inline unsigned long arch_mmap_rnd(void) { return 0; }
 | |
| # if defined(arch_randomize_brk) && defined(CONFIG_COMPAT_BRK)
 | |
| #  define compat_brk_randomized
 | |
| # endif
 | |
| # ifndef arch_randomize_brk
 | |
| #  define arch_randomize_brk(mm)	(mm->brk)
 | |
| # endif
 | |
| #else
 | |
| extern unsigned long arch_mmap_rnd(void);
 | |
| extern unsigned long arch_randomize_brk(struct mm_struct *mm);
 | |
| # ifdef CONFIG_COMPAT_BRK
 | |
| #  define compat_brk_randomized
 | |
| # endif
 | |
| #endif
 | |
| 
 | |
| #endif
 |