From a17b2fd3580d1da96e806c8b58e61255e8c57577 Mon Sep 17 00:00:00 2001 From: Orit Wasserman Date: Thu, 30 Jan 2014 20:08:37 +0200 Subject: Don't abort on out of memory when creating page cache Signed-off-by: Orit Wasserman Reviewed-by: Dr. David Alan Gilbert Signed-off-by: Juan Quintela --- arch_init.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'arch_init.c') diff --git a/arch_init.c b/arch_init.c index 5eff80b2a8..1fa5f1fdd4 100644 --- a/arch_init.c +++ b/arch_init.c @@ -664,8 +664,22 @@ static int ram_save_setup(QEMUFile *f, void *opaque) DPRINTF("Error creating cache\n"); return -1; } - XBZRLE.encoded_buf = g_malloc0(TARGET_PAGE_SIZE); - XBZRLE.current_buf = g_malloc(TARGET_PAGE_SIZE); + + /* We prefer not to abort if there is no memory */ + XBZRLE.encoded_buf = g_try_malloc0(TARGET_PAGE_SIZE); + if (!XBZRLE.encoded_buf) { + DPRINTF("Error allocating encoded_buf\n"); + return -1; + } + + XBZRLE.current_buf = g_try_malloc(TARGET_PAGE_SIZE); + if (!XBZRLE.current_buf) { + DPRINTF("Error allocating current_buf\n"); + g_free(XBZRLE.encoded_buf); + XBZRLE.encoded_buf = NULL; + return -1; + } + acct_clear(); } -- cgit v1.2.1