Commit e916a6e8 authored by Eduardo Habkost's avatar Eduardo Habkost Committed by Stefan Hajnoczi
Browse files

oslib-posix: Print errors before aborting on qemu_alloc_stack()



If QEMU is running on a system that's out of memory and mmap()
fails, QEMU aborts with no error message at all, making it hard
to debug the reason for the failure.

Add perror() calls that will print error information before
aborting.

Signed-off-by: default avatarEduardo Habkost <ehabkost@redhat.com>
Reviewed-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: default avatarPhilippe Mathieu-Daudé <f4bug@amsat.org>
Message-id: 20170829212053.6003-1-ehabkost@redhat.com
Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
parent d942feec
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -530,6 +530,7 @@ void *qemu_alloc_stack(size_t *sz)
    ptr = mmap(NULL, *sz, PROT_READ | PROT_WRITE,
               MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
    if (ptr == MAP_FAILED) {
        perror("failed to allocate memory for stack");
        abort();
    }

@@ -544,6 +545,7 @@ void *qemu_alloc_stack(size_t *sz)
    guardpage = ptr;
#endif
    if (mprotect(guardpage, pagesz, PROT_NONE) != 0) {
        perror("failed to set up stack guard page");
        abort();
    }