[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 05/20] curl: Handle failure for potentially l
From: |
Benoît Canet |
Subject: |
Re: [Qemu-devel] [PATCH v2 05/20] curl: Handle failure for potentially large allocations |
Date: |
Fri, 30 May 2014 14:19:03 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
The Wednesday 28 May 2014 à 16:37:38 (+0200), Kevin Wolf wrote :
> Some code in the block layer makes potentially huge allocations. Failure
> is not completely unexpected there, so avoid aborting qemu and handle
> out-of-memory situations gracefully.
>
> This patch addresses the allocations in the curl block driver.
>
> Signed-off-by: Kevin Wolf <address@hidden>
> Reviewed-by: Stefan Hajnoczi <address@hidden>
> ---
> block/curl.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/block/curl.c b/block/curl.c
> index f491b0b..ae996e2 100644
> --- a/block/curl.c
> +++ b/block/curl.c
> @@ -604,7 +604,13 @@ static void curl_readv_bh_cb(void *p)
> state->buf_start = start;
> state->buf_len = acb->end + s->readahead_size;
> end = MIN(start + state->buf_len, s->len) - 1;
> - state->orig_buf = g_malloc(state->buf_len);
> + state->orig_buf = g_try_malloc(state->buf_len);
> + if (state->buf_len && state->orig_buf == NULL) {
> + curl_clean_state(state);
> + acb->common.cb(acb->common.opaque, -ENOMEM);
> + qemu_aio_release(acb);
> + return;
> + }
> state->acb[0] = acb;
>
> snprintf(state->range, 127, "%zd-%zd", start, end);
> --
> 1.8.3.1
>
>
eviewed-by: Benoit Canet <address@hidden>
- Re: [Qemu-devel] [PATCH v2 02/20] block: Handle failure for potentially large allocations, (continued)
- [Qemu-devel] [PATCH v2 03/20] bochs: Handle failure for potentially large allocations, Kevin Wolf, 2014/05/28
- [Qemu-devel] [PATCH v2 04/20] cloop: Handle failure for potentially large allocations, Kevin Wolf, 2014/05/28
- [Qemu-devel] [PATCH v2 01/20] block: Introduce qemu_try_blockalign(), Kevin Wolf, 2014/05/28
- [Qemu-devel] [PATCH v2 05/20] curl: Handle failure for potentially large allocations, Kevin Wolf, 2014/05/28
- Re: [Qemu-devel] [PATCH v2 05/20] curl: Handle failure for potentially large allocations,
Benoît Canet <=
- [Qemu-devel] [PATCH v2 06/20] dmg: Handle failure for potentially large allocations, Kevin Wolf, 2014/05/28
- [Qemu-devel] [PATCH v2 07/20] iscsi: Handle failure for potentially large allocations, Kevin Wolf, 2014/05/28
- [Qemu-devel] [PATCH v2 08/20] nfs: Handle failure for potentially large allocations, Kevin Wolf, 2014/05/28
- [Qemu-devel] [PATCH v2 09/20] parallels: Handle failure for potentially large allocations, Kevin Wolf, 2014/05/28
- [Qemu-devel] [PATCH v2 10/20] qcow1: Handle failure for potentially large allocations, Kevin Wolf, 2014/05/28