diff options
Diffstat (limited to 'results/classifier/zero-shot-user-mode/output/syscall/982')
| -rw-r--r-- | results/classifier/zero-shot-user-mode/output/syscall/982 | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/results/classifier/zero-shot-user-mode/output/syscall/982 b/results/classifier/zero-shot-user-mode/output/syscall/982 new file mode 100644 index 00000000..0dc12f11 --- /dev/null +++ b/results/classifier/zero-shot-user-mode/output/syscall/982 @@ -0,0 +1,43 @@ +syscall: 0.514 +instruction: 0.353 +runtime: 0.133 + + + +linux-user: --strace incorrectly decodes writev arguments for 64-bit binaries on 32-bit machine +Description of problem: +With `--strace`, the arguments to `writev` appear to be decoded incorrectly. +The syscall still succeeds and has the expected effects. +Steps to reproduce: +``` +$ cat main.c +#include <sys/uio.h> + +int main(void) { + struct iovec iov; + iov.iov_base = "hello, world!\n"; + iov.iov_len = 14; + return writev(1, &iov, 1); +} + +$ aarch64-unknown-linux-gnu-gcc -static -o aarch64-main main.c + +$ x86_64-pc-linux-gnu-gcc -static -o x86_64-main main.c + +$ i686-pc-linux-gnu-gcc -static -o i686-main main.c + +$ ./i686-main +hello, world! + +$ strace ./i686-main |& grep writev +writev(1, [{iov_base="hello, world!\n", iov_len=14}], 1hello, world! + +$ qemu-i386 --strace ./i686-main |& grep writev +21953 writev(1,0x407ffe54,0x1) = 14 + +$ qemu-x86_64 --strace ./x86_64-main |& grep writev +22218 writev(1,(nil),0x407ffcc0) = 14 + +$ qemu-aarch64 --strace ./aarch64-main |& grep writev +22523 writev(1,(nil),0x407ffcc8) = 14 +``` |