fs/binfmt_aout.c: fix pointer warnings
fs/binfmt_aout.c: In function `aout_core_dump': fs/binfmt_aout.c:125: warning: passing argument 2 of `dump_write' makes pointer from integer without a cast include/linux/coredump.h:12: note: expected `const void *' but argument is of type `long unsigned int' fs/binfmt_aout.c:132: warning: passing argument 2 of `dump_write' makes pointer from integer without a cast include/linux/coredump.h:12: note: expected `const void *' but argument is of type `long unsigned int' due to dump_write() expecting a user void *. Fold casts into the START_DATA/START_STACK macros and shut up the warnings. Signed-off-by: Borislav Petkov <petkovbb@gmail.com> Cc: Daisuke HATAYAMA <d.hatayama@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
committed by
Linus Torvalds
parent
ef5da59f12
commit
7731d9a5d4
@@ -75,14 +75,16 @@ static int aout_core_dump(struct coredump_params *cprm)
|
|||||||
struct file *file = cprm->file;
|
struct file *file = cprm->file;
|
||||||
mm_segment_t fs;
|
mm_segment_t fs;
|
||||||
int has_dumped = 0;
|
int has_dumped = 0;
|
||||||
unsigned long dump_start, dump_size;
|
void __user *dump_start;
|
||||||
|
int dump_size;
|
||||||
struct user dump;
|
struct user dump;
|
||||||
#ifdef __alpha__
|
#ifdef __alpha__
|
||||||
# define START_DATA(u) (u.start_data)
|
# define START_DATA(u) ((void __user *)u.start_data)
|
||||||
#else
|
#else
|
||||||
# define START_DATA(u) ((u.u_tsize << PAGE_SHIFT) + u.start_code)
|
# define START_DATA(u) ((void __user *)((u.u_tsize << PAGE_SHIFT) + \
|
||||||
|
u.start_code))
|
||||||
#endif
|
#endif
|
||||||
# define START_STACK(u) (u.start_stack)
|
# define START_STACK(u) ((void __user *)u.start_stack)
|
||||||
|
|
||||||
fs = get_fs();
|
fs = get_fs();
|
||||||
set_fs(KERNEL_DS);
|
set_fs(KERNEL_DS);
|
||||||
@@ -104,9 +106,9 @@ static int aout_core_dump(struct coredump_params *cprm)
|
|||||||
|
|
||||||
/* make sure we actually have a data and stack area to dump */
|
/* make sure we actually have a data and stack area to dump */
|
||||||
set_fs(USER_DS);
|
set_fs(USER_DS);
|
||||||
if (!access_ok(VERIFY_READ, (void __user *)START_DATA(dump), dump.u_dsize << PAGE_SHIFT))
|
if (!access_ok(VERIFY_READ, START_DATA(dump), dump.u_dsize << PAGE_SHIFT))
|
||||||
dump.u_dsize = 0;
|
dump.u_dsize = 0;
|
||||||
if (!access_ok(VERIFY_READ, (void __user *)START_STACK(dump), dump.u_ssize << PAGE_SHIFT))
|
if (!access_ok(VERIFY_READ, START_STACK(dump), dump.u_ssize << PAGE_SHIFT))
|
||||||
dump.u_ssize = 0;
|
dump.u_ssize = 0;
|
||||||
|
|
||||||
set_fs(KERNEL_DS);
|
set_fs(KERNEL_DS);
|
||||||
|
Reference in New Issue
Block a user