Andreas Schwab <[email protected]> writes:
> $ cat mmap.c
> #include <stdio.h>
> #include <sys/mman.h>
>
> int
> main (void)
> {
> void *A;
> size_t L = 0, U, Max = 0;
> for (U = 1; ; U *= 2)
> {
> A = mmap (0, U, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE,
> -1, 0);
> if (A == (void *) -1)
> break;
> else
> munmap (A, U);
> }
> while (L + 1 < U)
> {
> size_t M = L + (U - L) / 2;
> A = mmap (0, M, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE,
> -1, 0);
> if (A == (void *) -1)
> U = M;
> else
> {
> Max = M;
> munmap(A, M);
> L = M;
> }
> }
> printf ("%zx\n", Max);
> }
> $ cc -O2 -g -Wall -std=gnu11 -g mmap.c -o mmap
> $ ./mmap
> 7f672e5ff000
> $ qemu-x86_64 ./mmap
> Killed
This is probably the same as bug:
https://gitlab.com/qemu-project/qemu/-/issues/967
--
Alex Bennée