summary refs log tree commit diff stats
path: root/results/classifier/zero-shot-user-mode/instruction/1761153
blob: 2cfbd1643d4b312f2cc09fab346de1dc18649fac (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
instruction: 0.571
runtime: 0.295
syscall: 0.134



qemu-user incorrect mmap for large files on 64bits host and 32bits executable.

qemu-user seems to incorrectly mmap a file if the offset is > 4GiB and guest binary is 32 bits elf.

See attached test program `test_mmap.c`.

```
$ gcc -g -m32 -march=i386 test_mmap.c -o test_mmap
$ file test_mmap
test_mmap: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=e36db05f4dfd8a9cfde8a969214a242c1f5a4b49, with debug_info, not stripped
$ uname -a
Linux localhost.localdomain 4.15.10-300.fc27.x86_64 #1 SMP Thu Mar 15 17:13:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ qemu-i386 --version
qemu-i386 version 2.10.1(qemu-2.10.1-2.fc27)
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
$ ./test_mmap
$ qemu-i386 test_mmap
Incorrect data 1
```

Tested with qemu-i386 packaged in Fedora 27 and qemu-i386 compiled from git master (094b62cd9c)

The issue was firstly detected on (more complex program) using qemu-arm (with 32bits binary) so it is probably a 32/64bits problem independently of the cpu family.