diff options
| author | Patrick McHardy <kaber@trash.net> | 2010-04-20 10:02:01 -0400 | 
|---|---|---|
| committer | Patrick McHardy <kaber@trash.net> | 2010-04-20 10:02:01 -0400 | 
| commit | 62910554656cdcd6b6f84a5154c4155aae4ca231 (patch) | |
| tree | dcf14004f6fd2ef7154362ff948bfeba0f3ea92d /fs/binfmt_aout.c | |
| parent | 22265a5c3c103cf8c50be62e6c90d045eb649e6d (diff) | |
| parent | ab9304717f7624c41927f442e6b6d418b2d8b3e4 (diff) | |
Merge branch 'master' of /repos/git/net-next-2.6
Conflicts:
	Documentation/feature-removal-schedule.txt
	net/ipv6/netfilter/ip6t_REJECT.c
	net/netfilter/xt_limit.c
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'fs/binfmt_aout.c')
| -rw-r--r-- | fs/binfmt_aout.c | 16 | 
1 files changed, 9 insertions, 7 deletions
| diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c index 15d80bb35d6f..f96eff04e11a 100644 --- a/fs/binfmt_aout.c +++ b/fs/binfmt_aout.c | |||
| @@ -20,11 +20,11 @@ | |||
| 20 | #include <linux/fcntl.h> | 20 | #include <linux/fcntl.h> | 
| 21 | #include <linux/ptrace.h> | 21 | #include <linux/ptrace.h> | 
| 22 | #include <linux/user.h> | 22 | #include <linux/user.h> | 
| 23 | #include <linux/slab.h> | ||
| 24 | #include <linux/binfmts.h> | 23 | #include <linux/binfmts.h> | 
| 25 | #include <linux/personality.h> | 24 | #include <linux/personality.h> | 
| 26 | #include <linux/init.h> | 25 | #include <linux/init.h> | 
| 27 | #include <linux/coredump.h> | 26 | #include <linux/coredump.h> | 
| 27 | #include <linux/slab.h> | ||
| 28 | 28 | ||
| 29 | #include <asm/system.h> | 29 | #include <asm/system.h> | 
| 30 | #include <asm/uaccess.h> | 30 | #include <asm/uaccess.h> | 
| @@ -75,14 +75,16 @@ static int aout_core_dump(struct coredump_params *cprm) | |||
| 75 | struct file *file = cprm->file; | 75 | struct file *file = cprm->file; | 
| 76 | mm_segment_t fs; | 76 | mm_segment_t fs; | 
| 77 | int has_dumped = 0; | 77 | int has_dumped = 0; | 
| 78 | unsigned long dump_start, dump_size; | 78 | void __user *dump_start; | 
| 79 | int dump_size; | ||
| 79 | struct user dump; | 80 | struct user dump; | 
| 80 | #ifdef __alpha__ | 81 | #ifdef __alpha__ | 
| 81 | # define START_DATA(u) (u.start_data) | 82 | # define START_DATA(u) ((void __user *)u.start_data) | 
| 82 | #else | 83 | #else | 
| 83 | # define START_DATA(u) ((u.u_tsize << PAGE_SHIFT) + u.start_code) | 84 | # define START_DATA(u) ((void __user *)((u.u_tsize << PAGE_SHIFT) + \ | 
| 85 | u.start_code)) | ||
| 84 | #endif | 86 | #endif | 
| 85 | # define START_STACK(u) (u.start_stack) | 87 | # define START_STACK(u) ((void __user *)u.start_stack) | 
| 86 | 88 | ||
| 87 | fs = get_fs(); | 89 | fs = get_fs(); | 
| 88 | set_fs(KERNEL_DS); | 90 | set_fs(KERNEL_DS); | 
| @@ -104,9 +106,9 @@ static int aout_core_dump(struct coredump_params *cprm) | |||
| 104 | 106 | ||
| 105 | /* make sure we actually have a data and stack area to dump */ | 107 | /* make sure we actually have a data and stack area to dump */ | 
| 106 | set_fs(USER_DS); | 108 | set_fs(USER_DS); | 
| 107 | if (!access_ok(VERIFY_READ, (void __user *)START_DATA(dump), dump.u_dsize << PAGE_SHIFT)) | 109 | if (!access_ok(VERIFY_READ, START_DATA(dump), dump.u_dsize << PAGE_SHIFT)) | 
| 108 | dump.u_dsize = 0; | 110 | dump.u_dsize = 0; | 
| 109 | if (!access_ok(VERIFY_READ, (void __user *)START_STACK(dump), dump.u_ssize << PAGE_SHIFT)) | 111 | if (!access_ok(VERIFY_READ, START_STACK(dump), dump.u_ssize << PAGE_SHIFT)) | 
| 110 | dump.u_ssize = 0; | 112 | dump.u_ssize = 0; | 
| 111 | 113 | ||
| 112 | set_fs(KERNEL_DS); | 114 | set_fs(KERNEL_DS); | 
