On 03/15/2018 07:29 PM, Dr. David Alan Gilbert wrote:
@@ -1051,11 +1052,13 @@ static int do_compress_ram_page(QEMUFile *f, z_stream *stream, RAMBlock *block, { RAMState *rs = ram_state; int bytes_sent, blen; - uint8_t *p = block->host + (offset & TARGET_PAGE_MASK); + uint8_t buf[TARGET_PAGE_SIZE], *p;That should be malloc'd somewhere rather than be on the stack; it's a bit big and also there are architectures where TARGET_PAGE_SIZE isn't compile time constant.
Okay, i will allocate a internal buffer for each thread...
(Also, please use g_try_malloc rather than g_malloc on larger chunks, since g_try_malloc will return NULL so you can fail nicely; g_malloc is OK for small things that are very unlikely to fail). Other than that, I think the patch is fine.
Thank you, Dave!
