qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 02/28] io: avoid double-free when closing QIO


From: Dr. David Alan Gilbert
Subject: Re: [Qemu-devel] [PATCH v4 02/28] io: avoid double-free when closing QIOChannelBuffer
Date: Mon, 14 Mar 2016 19:43:32 +0000
User-agent: Mutt/1.5.24 (2015-08-30)

* Daniel P. Berrange (address@hidden) wrote:
> The QIOChannelBuffer's close implementation will free
> the internal data buffer. It failed to reset the pointer
> to NULL though, so when the object is later finalized
> it will free it a second time with predictable crash.
> 
> Signed-off-by: Daniel P. Berrange <address@hidden>
> ---
>  io/channel-buffer.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/io/channel-buffer.c b/io/channel-buffer.c
> index 3e5117b..43d7959 100644
> --- a/io/channel-buffer.c
> +++ b/io/channel-buffer.c
> @@ -140,6 +140,7 @@ static int qio_channel_buffer_close(QIOChannel *ioc,
>      QIOChannelBuffer *bioc = QIO_CHANNEL_BUFFER(ioc);
>  
>      g_free(bioc->data);
> +    bioc->data = NULL;
>      bioc->capacity = bioc->usage = bioc->offset = 0;

Would it be better to call qui_channel_buffer_finalize(bioc) here,
and put the data = NULL in there?

(You could split this out of the series since it could go in any time?)

Dave

>  
>      return 0;
> -- 
> 2.5.0
> 
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK



reply via email to

[Prev in Thread] Current Thread [Next in Thread]