diff options
Diffstat (limited to 'results/classifier/deepseek-2-tmp/output/mistranslation/1760')
| -rw-r--r-- | results/classifier/deepseek-2-tmp/output/mistranslation/1760 | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/results/classifier/deepseek-2-tmp/output/mistranslation/1760 b/results/classifier/deepseek-2-tmp/output/mistranslation/1760 deleted file mode 100644 index d1e452a2..00000000 --- a/results/classifier/deepseek-2-tmp/output/mistranslation/1760 +++ /dev/null @@ -1,54 +0,0 @@ - -qemu8-i386 gets wrong arguments for 32-bit old mmap syscall (_NR_mmap = 90) -Description of problem: -qemu8-i386 does not decode syscall arguments correctly for system call _NR_mmap = 90 on i386. -``` -$ strace ./oldmmap -execve("./oldmmap", ["./oldmmap"], 0x7fff46ba6d40 /* 61 vars */) = 0 -[ Process PID=405233 runs in 32 bit mode. ] -mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xf7fa7000 -exit(5) = ? -+++ exited with 5 +++ - -$ build/qemu-i386 -strace ./oldmmap -405254 mmap(0x40800058,0,PROT_NONE,0,0,0) = 0x3fffb000 -405254 exit(5) -``` -Steps to reproduce: -1. gcc -m32 -o oldmmap -nostartfiles -nostdlib oldmmap.S # build 32-bit executable -2. strace ./oldmmap # run under strace -3. build/qemu-i386 -strace ./oldmmap # run under "qemu-i386 -strace" -4. Notice that qemu-i386 did not report the same arguments to the _NR_map syscall as /usr/bin/strace did. -Additional information: -``` -$ cat oldmmap.S -MAP_FIXED= 0x10 -MAP_PRIVATE= 0x02 -MAP_ANONYMOUS= 0x20 - -PROT_READ= 1 -PROT_WRITE= 2 -PROT_EXEC= 4 - -_NR_exit = 1 -_NR_mmap = 90 // oldmmap: %ebx -> array of 6 arguments - - .globl _start -_start: - push $0 // offset - push $-1 // fd - push $MAP_PRIVATE|MAP_ANONYMOUS // flags - push $PROT_READ|PROT_WRITE // protection - push $2<<12 // length - push $0 // addr (kernel chooses) - mov %esp,%ebx - mov $_NR_mmap,%eax - int $0x80 - nop - - mov $5,%ebx - mov $_NR_exit,%eax - int $0x80 - hlt -$ -``` |