mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 21:21:09 -04:00
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 <[email protected]> Cc: Hector Marco-Gisbert <[email protected]> Cc: Russell King <[email protected]> Reviewed-by: Ingo Molnar <[email protected]> Cc: Catalin Marinas <[email protected]> Cc: Will Deacon <[email protected]> Cc: Ralf Baechle <[email protected]> Cc: Benjamin Herrenschmidt <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Michael Ellerman <[email protected]> Cc: Martin Schwidefsky <[email protected]> Cc: Heiko Carstens <[email protected]> Cc: Alexander Viro <[email protected]> Cc: Oleg Nesterov <[email protected]> Cc: Andy Lutomirski <[email protected]> Cc: "David A. Long" <[email protected]> Cc: Andrey Ryabinin <[email protected]> Cc: Arun Chandran <[email protected]> Cc: Yann Droneaud <[email protected]> Cc: Min-Hua Chen <[email protected]> Cc: Paul Burton <[email protected]> Cc: Alex Smith <[email protected]> Cc: Markos Chandras <[email protected]> Cc: Vineeth Vijayan <[email protected]> Cc: Jeff Bailey <[email protected]> Cc: Michael Holzheu <[email protected]> Cc: Ben Hutchings <[email protected]> Cc: Behan Webster <[email protected]> Cc: Ismael Ripoll <[email protected]> Cc: Jan-Simon Mller <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
23 lines
544 B
C
23 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
|