diff options
author | Dmitry V. Levin <ldv@altlinux.org> | 2014-04-17 13:32:47 +0000 |
---|---|---|
committer | Dmitry V. Levin <ldv@altlinux.org> | 2014-04-17 13:39:49 +0000 |
commit | 7845a42b39e59e904d01e75e21f7bc7eb6462560 (patch) | |
tree | 048e6aa057d57df773be7b0f9536960323af95bf /io.c | |
parent | cc3d59199d80588a53ee353da5d69726bd093c51 (diff) | |
download | strace-7845a42b39e59e904d01e75e21f7bc7eb6462560.tar.gz strace-7845a42b39e59e904d01e75e21f7bc7eb6462560.tar.bz2 strace-7845a42b39e59e904d01e75e21f7bc7eb6462560.tar.xz |
Fix preadv/pwritev offset decoding
* util.c (printllval): Add align argument.
* defs.h (printllval): Update prototype.
(printllval_aligned, printllval_unaligned): New macros.
* file.c (sys_readahead, sys_truncate64, sys_ftruncate64, sys_fadvise64,
sys_fadvise64_64, sys_sync_file_range, sys_sync_file_range2,
sys_fallocate): Replace printllval call with printllval_aligned.
* io.c (sys_pread, sys_pwrite): Likewise.
(sys_preadv, sys_pwritev): Replace printllval call with
printllval_unaligned.
* linux/arm/syscallent.h: Set the number of preadv and pwritev
arguments to 5.
* linux/mips/syscallent-o32.h: Likewise.
* linux/powerpc/syscallent.h: Likewise.
* linux/sh/syscallent.h: Likewise.
* linux/xtensa/syscallent.h: Likewise.
Reported-by: Dima Kogan <dima@secretsauce.net>
Diffstat (limited to 'io.c')
-rw-r--r-- | io.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -199,7 +199,7 @@ sys_pread(struct tcb *tcp) else printstr(tcp, tcp->u_arg[1], tcp->u_rval); tprintf(", %lu, ", tcp->u_arg[2]); - printllval(tcp, "%llu", PREAD_OFFSET_ARG); + printllval_aligned(tcp, "%llu", PREAD_OFFSET_ARG); } return 0; } @@ -212,7 +212,7 @@ sys_pwrite(struct tcb *tcp) tprints(", "); printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]); tprintf(", %lu, ", tcp->u_arg[2]); - printllval(tcp, "%llu", PREAD_OFFSET_ARG); + printllval_aligned(tcp, "%llu", PREAD_OFFSET_ARG); } return 0; } @@ -231,7 +231,7 @@ sys_preadv(struct tcb *tcp) } tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1); tprintf(", %lu, ", tcp->u_arg[2]); - printllval(tcp, "%llu", PREAD_OFFSET_ARG); + printllval_unaligned(tcp, "%llu", 3); } return 0; } @@ -244,7 +244,7 @@ sys_pwritev(struct tcb *tcp) tprints(", "); tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1); tprintf(", %lu, ", tcp->u_arg[2]); - printllval(tcp, "%llu", PREAD_OFFSET_ARG); + printllval_unaligned(tcp, "%llu", 3); } return 0; } |