diff options
author | Kirill Korotaev <dev@sw.ru> | 2006-08-16 12:58:10 +0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-08-23 14:13:32 -0700 |
commit | 8833ebaa3f4325820fe3338ccf6fae04f6669254 (patch) | |
tree | cc65b223fbad701405a770636635e3ff30932d6c /include | |
parent | 0872a284963a642ba748cbd75842138dd9a3bd00 (diff) |
IA64: local DoS with corrupted ELFs
This patch prevents cross-region mappings
on IA64 and SPARC which could lead to system crash.
davem@ confirmed: "This looks fine to me." :)
Signed-Off-By: Pavel Emelianov <xemul@openvz.org>
Signed-Off-By: Kirill Korotaev <dev@openvz.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-generic/mman.h | 6 | ||||
-rw-r--r-- | include/asm-ia64/mman.h | 6 | ||||
-rw-r--r-- | include/asm-sparc/mman.h | 6 | ||||
-rw-r--r-- | include/asm-sparc64/mman.h | 6 |
4 files changed, 24 insertions, 0 deletions
diff --git a/include/asm-generic/mman.h b/include/asm-generic/mman.h index 3b41d2bb70d..010ced7cfd6 100644 --- a/include/asm-generic/mman.h +++ b/include/asm-generic/mman.h @@ -39,4 +39,10 @@ #define MAP_ANON MAP_ANONYMOUS #define MAP_FILE 0 +#ifdef __KERNEL__ +#ifndef arch_mmap_check +#define arch_mmap_check(addr, len, flags) (0) +#endif +#endif + #endif diff --git a/include/asm-ia64/mman.h b/include/asm-ia64/mman.h index 6ba179f1271..df1b20e773b 100644 --- a/include/asm-ia64/mman.h +++ b/include/asm-ia64/mman.h @@ -8,6 +8,12 @@ * David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co */ +#ifdef __KERNEL__ +#define arch_mmap_check ia64_map_check_rgn +int ia64_map_check_rgn(unsigned long addr, unsigned long len, + unsigned long flags); +#endif + #include <asm-generic/mman.h> #define MAP_GROWSDOWN 0x00100 /* stack-like segment */ diff --git a/include/asm-sparc/mman.h b/include/asm-sparc/mman.h index 88d1886abf3..95ecab588ae 100644 --- a/include/asm-sparc/mman.h +++ b/include/asm-sparc/mman.h @@ -2,6 +2,12 @@ #ifndef __SPARC_MMAN_H__ #define __SPARC_MMAN_H__ +#ifdef __KERNEL__ +#define arch_mmap_check sparc_mmap_check +int sparc_mmap_check(unsigned long addr, unsigned long len, + unsigned long flags); +#endif + #include <asm-generic/mman.h> /* SunOS'ified... */ diff --git a/include/asm-sparc64/mman.h b/include/asm-sparc64/mman.h index 6fd878e6143..b3002763c7d 100644 --- a/include/asm-sparc64/mman.h +++ b/include/asm-sparc64/mman.h @@ -2,6 +2,12 @@ #ifndef __SPARC64_MMAN_H__ #define __SPARC64_MMAN_H__ +#ifdef __KERNEL__ +#define arch_mmap_check sparc64_mmap_check +int sparc64_mmap_check(unsigned long addr, unsigned long len, + unsigned long flags); +#endif + #include <asm-generic/mman.h> /* SunOS'ified... */ |