X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Flinux%2Fpersonality.h;h=7cef4670ac05bf16f851febbc2ae1aa98779cc53;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=14b91221d3e87b40f949f734078824923ef80b20;hpb=5273a3df6485dc2ad6aa7ddd441b9a21970f003b;p=linux-2.6.git diff --git a/include/linux/personality.h b/include/linux/personality.h index 14b91221d..7cef4670a 100644 --- a/include/linux/personality.h +++ b/include/linux/personality.h @@ -12,24 +12,18 @@ extern int register_exec_domain(struct exec_domain *); extern int unregister_exec_domain(struct exec_domain *); extern int __set_personality(unsigned long); - -/* - * Sysctl variables related to binary emulation. - */ -extern unsigned long abi_defhandler_coff; -extern unsigned long abi_defhandler_elf; -extern unsigned long abi_defhandler_lcall7; -extern unsigned long abi_defhandler_libcso; -extern int abi_fake_utsname; - - /* * Flags for bug emulation. * * These occupy the top three bytes. */ enum { + FDPIC_FUNCPTRS = 0x0080000, /* userspace function ptrs point to descriptors + * (signal handling) + */ MMAP_PAGE_ZERO = 0x0100000, + ADDR_COMPAT_LAYOUT = 0x0200000, + READ_IMPLIES_EXEC = 0x0400000, ADDR_LIMIT_32BIT = 0x0800000, SHORT_INODE = 0x1000000, WHOLE_SECONDS = 0x2000000, @@ -37,6 +31,12 @@ enum { ADDR_LIMIT_3GB = 0x8000000, }; +/* + * Security-relevant compatibility flags that must be + * cleared upon setuid or setgid exec: + */ +#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC) + /* * Personality types. * @@ -46,6 +46,7 @@ enum { enum { PER_LINUX = 0x0000, PER_LINUX_32BIT = 0x0000 | ADDR_LIMIT_32BIT, + PER_LINUX_FDPIC = 0x0000 | FDPIC_FUNCPTRS, PER_SVR4 = 0x0001 | STICKY_TIMEOUTS | MMAP_PAGE_ZERO, PER_SVR3 = 0x0002 | STICKY_TIMEOUTS | SHORT_INODE, PER_SCOSVR3 = 0x0003 | STICKY_TIMEOUTS |