diff options
Diffstat (limited to 'results/classifier/deepseek-2-tmp/output/hypervisor/1729')
| -rw-r--r-- | results/classifier/deepseek-2-tmp/output/hypervisor/1729 | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/results/classifier/deepseek-2-tmp/output/hypervisor/1729 b/results/classifier/deepseek-2-tmp/output/hypervisor/1729 deleted file mode 100644 index ba83385e2..000000000 --- a/results/classifier/deepseek-2-tmp/output/hypervisor/1729 +++ /dev/null @@ -1,48 +0,0 @@ - -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 |