mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 17:24:17 +08:00
[IA64] preserve personality flag bits across exec
In its <asm/elf.h> ia64 defines SET_PERSONALITY in a way that unconditionally sets the personality of the current process to PER_LINUX, losing any flag bits from the upper 3 bytes of current->personality. This is wrong. Those bits are intended to be inherited across exec (other code takes care of ensuring that security sensitive bits like ADDR_NO_RANDOMIZE are not passed to unsuspecting setuid/setgid applications). Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
deb0c98c7f
commit
22208ac586
@ -201,7 +201,9 @@ extern void ia64_elf_core_copy_regs (struct pt_regs *src, elf_gregset_t dst);
|
|||||||
relevant until we have real hardware to play with... */
|
relevant until we have real hardware to play with... */
|
||||||
#define ELF_PLATFORM NULL
|
#define ELF_PLATFORM NULL
|
||||||
|
|
||||||
#define SET_PERSONALITY(ex) set_personality(PER_LINUX)
|
#define SET_PERSONALITY(ex) \
|
||||||
|
set_personality((current->personality & ~PER_MASK) | PER_LINUX)
|
||||||
|
|
||||||
#define elf_read_implies_exec(ex, executable_stack) \
|
#define elf_read_implies_exec(ex, executable_stack) \
|
||||||
((executable_stack!=EXSTACK_DISABLE_X) && ((ex).e_flags & EF_IA_64_LINUX_EXECUTABLE_STACK) != 0)
|
((executable_stack!=EXSTACK_DISABLE_X) && ((ex).e_flags & EF_IA_64_LINUX_EXECUTABLE_STACK) != 0)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user