[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] linux-user/mmap: Should not return NULL on guest call m
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] linux-user/mmap: Should not return NULL on guest call mmap(NULL, ...), causes crash inside glibc |
Date: |
Fri, 5 Jan 2018 18:38:06 +0000 |
On 5 January 2018 at 18:13, Maximilian Riemensberger
<address@hidden> wrote:
> Hi,
>
> yesterday I hit the following problem when running an arm linux executable on
> qemu-2.10 (qemu-arm-static through binfmt_misc)
>
> 1879
> mmap2(NULL,8388608,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS|0x20000,-1,0)
> = 0x00000000
> 1879 write(2,0xf6fd39d0,79) stx_test: allocatestack.c:514: allocate_stack:
> Assertion `mem != NULL' failed.
>
> The issue comes up when the executable creates and joins lots of
> threads in a loop (it's a unit test). Eventually, glibc allocatestack
> hits the mmap(NULL, ...) == NULL. Judging from the posix and linux
> manuals mmap(NULL, ...) never returns NULL. Either it fails with MAP_FAILED
> or it succeeds and returns non-NULL address.
Given the heavy use of threading, can you retest with QEMU 2.11,
please? We fixed a couple of threading issues in linux-user there.
thanks
-- PMM