Fix printing of negative offsets in pread64 and pwrite64 syscalls
* io.c (SYS_FUNC(pread), SYS_FUNC(pwrite)): Print offset
using %lld format string.
* tests/pread64-pwrite64.c: New file.
* tests/pread64-pwrite64.test: New test.
* tests/.gitignore: Add pread64-pwrite64.
* tests/Makefile.am (check_PROGRAMS): Likewise.
(pread64_pwrite64_CPPFLAGS): New variable.
(DECODER_TESTS): Add pread64-pwrite64.
diff --git a/io.c b/io.c
index d8444f3..ce787cd 100644
--- a/io.c
+++ b/io.c
@@ -169,7 +169,7 @@
else
printstr(tcp, tcp->u_arg[1], tcp->u_rval);
tprintf(", %lu, ", tcp->u_arg[2]);
- printllval(tcp, "%llu", PREAD_OFFSET_ARG);
+ printllval(tcp, "%lld", PREAD_OFFSET_ARG);
}
return 0;
}
@@ -180,7 +180,7 @@
tprints(", ");
printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", %lu, ", tcp->u_arg[2]);
- printllval(tcp, "%llu", PREAD_OFFSET_ARG);
+ printllval(tcp, "%lld", PREAD_OFFSET_ARG);
return RVAL_DECODED;
}