summary refs log tree commit diff stats
path: root/results/classifier/118/review/1729
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/review/1729')
-rw-r--r--results/classifier/118/review/1729107
1 files changed, 107 insertions, 0 deletions
diff --git a/results/classifier/118/review/1729 b/results/classifier/118/review/1729
new file mode 100644
index 00000000..116a603f
--- /dev/null
+++ b/results/classifier/118/review/1729
@@ -0,0 +1,107 @@
+arm: 0.952
+x86: 0.947
+ppc: 0.941
+performance: 0.884
+device: 0.875
+kernel: 0.870
+graphic: 0.865
+network: 0.847
+PID: 0.829
+architecture: 0.813
+TCG: 0.805
+socket: 0.801
+vnc: 0.769
+peripherals: 0.769
+permissions: 0.765
+files: 0.764
+user-level: 0.764
+assembly: 0.751
+VMM: 0.730
+register: 0.726
+risc-v: 0.634
+boot: 0.616
+semantic: 0.563
+debug: 0.508
+hypervisor: 0.437
+KVM: 0.397
+i386: 0.377
+mistranslation: 0.373
+virtual: 0.308
+--------------------
+user-level: 0.828
+x86: 0.810
+debug: 0.149
+TCG: 0.117
+virtual: 0.101
+files: 0.094
+arm: 0.044
+PID: 0.027
+register: 0.020
+network: 0.016
+semantic: 0.010
+performance: 0.006
+device: 0.006
+architecture: 0.005
+socket: 0.005
+kernel: 0.004
+boot: 0.004
+VMM: 0.002
+i386: 0.002
+assembly: 0.002
+peripherals: 0.002
+ppc: 0.001
+permissions: 0.001
+risc-v: 0.001
+graphic: 0.001
+KVM: 0.001
+vnc: 0.001
+mistranslation: 0.001
+hypervisor: 0.001
+
+mremap fails with EFAULT if address range overlaps with stack guard
+Description of problem:
+When running 32-bit user-static on 64-bit host, `mremap` behave differently from the kernel. This difference let programs that call `pthread_getattr_np` on musl-libc to run into a loop on repeated calling `mremap`.
+
+https://git.musl-libc.org/cgit/musl/plain/src/thread/pthread_getattr_np.c
+
+``` c
+		while (mremap(p-l-PAGE_SIZE, PAGE_SIZE, 2*PAGE_SIZE, 0)==MAP_FAILED && errno==ENOMEM)
+			l += PAGE_SIZE;
+```
+Steps to reproduce:
+Compile the following program against musl-libc arm 32-bit, and run it in qemu-user-static on x86_64 host.
+
+``` c
+#define _GNU_SOURCE
+#include <pthread.h>
+
+int main(int argc, char *argv[]) {
+	pthread_attr_t attr;
+	return pthread_getattr_np(pthread_self(), &attr);
+}
+```
+
+For example, on x86_64 fedora 38 with podman and qemu-user-static installed, we can reproduce this with alpine container:
+
+```
+$ podman run --rm -it --arch arm/v7 docker.io/library/alpine:latest
+
+/ # apk add alpine-sdk
+
+......
+
+/ # cat test.c
+#define _GNU_SOURCE
+#include <pthread.h>
+
+int main(int argc, char *argv[]) {
+	pthread_attr_t attr;
+	return pthread_getattr_np(pthread_self(), &attr);
+}
+
+/ # gcc test.c
+
+/ # ./a.out
+```
+Additional information:
+Original thread on musl mail list where this was initially reported: https://www.openwall.com/lists/musl/2017/06/15/9