summaryrefslogtreecommitdiff
path: root/io.c
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@altlinux.org>2014-04-17 13:32:47 +0000
committerDmitry V. Levin <ldv@altlinux.org>2014-04-17 13:39:49 +0000
commit7845a42b39e59e904d01e75e21f7bc7eb6462560 (patch)
tree048e6aa057d57df773be7b0f9536960323af95bf /io.c
parentcc3d59199d80588a53ee353da5d69726bd093c51 (diff)
downloadstrace-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.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/io.c b/io.c
index fac5615..f5458f7 100644
--- a/io.c
+++ b/io.c
@@ -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;
}