[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 1/1] chardev: convert the socket server to QI
From: |
Daniel P. Berrange |
Subject: |
Re: [Qemu-devel] [PATCH v2 1/1] chardev: convert the socket server to QIONetListener |
Date: |
Wed, 20 Dec 2017 16:25:20 +0000 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
On Wed, Dec 20, 2017 at 05:23:17PM +0100, Paolo Bonzini wrote:
> On 19/12/2017 09:48, Paolo Bonzini wrote:
> > On 18/12/2017 14:54, Daniel P. Berrange wrote:
> >> Instead of creating a QIOChannelSocket directly for the chardev
> >> server socket, use a QIONetListener. This provides the ability
> >> to listen on multiple sockets at the same time, so enables
> >> full support for IPv4/IPv6 dual stack.
> >>
> >> Signed-off-by: Daniel P. Berrange <address@hidden>
> >> ---
> >> chardev/char-socket.c | 72
> >> +++++++++++++++++++++------------------------------
> >> 1 file changed, 29 insertions(+), 43 deletions(-)
> >
> > Queued, thanks.
>
> I think this has to be squashed in to avoid use-after-free issues left and
> right
> (visible with test-hmp):
>
> diff --git a/chardev/char-socket.c b/chardev/char-socket.c
> index 2d2252a..630a7f2 100644
> --- a/chardev/char-socket.c
> +++ b/chardev/char-socket.c
> @@ -930,6 +930,7 @@ static void qmp_chardev_open_socket(Chardev *chr,
>
> if (qio_net_listener_open_sync(s->listener, s->addr, errp) < 0) {
> object_unref(OBJECT(s->listener));
> + s->listener = NULL;
> goto error;
> }
Yes, that makes sense given the context, though I can't reproduce the test
failures myself yet. Any, please do squash it into the patch, as it makes
sense. Reviewed-by: Daniel P. Berrange <address@hidden>
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|