summary refs log tree commit diff stats
path: root/results/classifier/118/none/1346769
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/none/1346769')
-rw-r--r--results/classifier/118/none/134676972
1 files changed, 72 insertions, 0 deletions
diff --git a/results/classifier/118/none/1346769 b/results/classifier/118/none/1346769
new file mode 100644
index 00000000..cd9b2b6e
--- /dev/null
+++ b/results/classifier/118/none/1346769
@@ -0,0 +1,72 @@
+peripherals: 0.688
+PID: 0.635
+graphic: 0.614
+user-level: 0.599
+network: 0.588
+permissions: 0.575
+virtual: 0.572
+ppc: 0.571
+debug: 0.566
+semantic: 0.561
+arm: 0.560
+register: 0.552
+device: 0.546
+TCG: 0.544
+hypervisor: 0.541
+VMM: 0.540
+risc-v: 0.540
+performance: 0.532
+architecture: 0.503
+i386: 0.497
+boot: 0.494
+mistranslation: 0.485
+x86: 0.462
+vnc: 0.460
+socket: 0.441
+files: 0.424
+kernel: 0.424
+assembly: 0.384
+KVM: 0.332
+
+/proc/self/maps content returned to 32-bits guest under 64-bits qemu
+
+Reading /proc/self/maps a user doesn't get a stack record. Not all programs relies on the maps file but some do.
+
+The bug found by running 32-bits binaries with address sanitizer (Asan) instrumentations under 64-bit qemu.
+
+$ echo "int main() { return 0; }" > /tmp/test.c
+$ gcc -m32 -fsanitize=address -fno-common -Wall -g -fPIC -o /tmp/test /tmp/test.c
+$ qemu-i386-static /tmp/test
+==4092==AddressSanitizer CHECK failed: /home/michail/Downloads/gcc-4.9.0/libsanitizer/sanitizer_common/sanitizer_linux_libcdep.cc:63 "(((uptr)&rl >= start && (uptr)&rl < end)) != (0)" (0x0, 0x0)
+    #0 0xf632ff01 (/home/michail/build/lib32/libasan.so.1+0x53f01)
+    #1 0xf6333f49 (/home/michail/build/lib32/libasan.so.1+0x57f49)
+    #2 0xf6338785 (/home/michail/build/lib32/libasan.so.1+0x5c785)
+    #3 0xf6338bd1 (/home/michail/build/lib32/libasan.so.1+0x5cbd1)
+    #4 0xf6331baf (/home/michail/build/lib32/libasan.so.1+0x55baf)
+    #5 0xf6331dca (/home/michail/build/lib32/libasan.so.1+0x55dca)
+    #6 0xf6331f5a (/home/michail/build/lib32/libasan.so.1+0x55f5a)
+    #7 0xf6330bd4 (/home/michail/build/lib32/libasan.so.1+0x54bd4)
+    #8 0xf67ebeec (/lib/ld-linux.so.2+0xeeec)
+    #9 0xf67de10e (/lib/ld-linux.so.2+0x110e)
+
+This happened because during initialization Asan can't find stack boundaries.
+
+For some reasons Qemu wants to report stack boundaries just for several arch targets skipping other ones. This is from linux-user/syscall.c open_self_maps()
+
+#if defined(TARGET_ARM) || defined(TARGET_M68K) || defined(TARGET_UNICORE32)
+    dprintf(fd, "%08llx-%08llx rw-p %08llx 00:00 0          [stack]\n",
+                (unsigned long long)ts->info->stack_limit,
+                (unsigned long long)(ts->info->start_stack +
+                                     (TARGET_PAGE_SIZE - 1)) & TARGET_PAGE_MASK,
+                (unsigned long long)0);
+#endif
+
+Not very clear why the case covers just specific targets.
+
+This bug continues the previously reported issue with not hiden system map http://lists.nongnu.org/archive/html/qemu-devel/2014-07/msg02793.html.
+
+I think the ifdefs are just accident of history and we can safely remove them.
+
+We removed the ifdefs at some point; the test case in this bug report now runs successfully.
+
+