Re: [PATCH v2 1/4] spice-channel: Properly error out if reconnect fails

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

 



Hi,

On Tue, Sep 18, 2018 at 03:53:19AM -0400, Frediano Ziglio wrote:
> > 
> > From: Victor Toso <me@xxxxxxxxxxxxxx>
> > 
> > The channel_connect() function could fail leading to a spice-channel
> > existing as zombie (its coroutine return soon after).
> > 
> > Check if channel_connect() fails and give a proper error signal to
> > user when that happens.
> > 
> > Related: https://bugzilla.redhat.com/show_bug.cgi?id=1625550
> > Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx>
> > ---
> >  src/spice-channel.c | 12 ++++++++----
> >  1 file changed, 8 insertions(+), 4 deletions(-)
> > 
> > diff --git a/src/spice-channel.c b/src/spice-channel.c
> > index 0a5437c..aa035e1 100644
> > --- a/src/spice-channel.c
> > +++ b/src/spice-channel.c
> > @@ -2675,11 +2675,15 @@ cleanup:
> >      if (c->state == SPICE_CHANNEL_STATE_RECONNECTING ||
> >          c->state == SPICE_CHANNEL_STATE_SWITCHING) {
> >          g_warn_if_fail(c->event == SPICE_CHANNEL_NONE);
> > -        channel_connect(channel, c->tls);
> > -        g_object_unref(channel);
> > -    } else
> > -        g_idle_add(spice_channel_delayed_unref, data);
> > +        if (channel_connect(channel, c->tls)) {
> > +            g_object_unref(channel);
> > +            return NULL;
> > +        }
> > +
> > +        c->event = SPICE_CHANNEL_ERROR_CONNECT;
> > +    }
> >  
> > +    g_idle_add(spice_channel_delayed_unref, data);
> >      /* Co-routine exits now - the SpiceChannel object may no longer exist,
> >         so don't do anything else now unless you like SEGVs */
> 
> Patch is good, this comment is now wrong here,

Comment should be correct. The only path changed is if
channel_connect() failed.

> channel (or data) is still valid.  Maybe
> 
>     g_idle_add(spice_channel_delayed_unref, channel);
> 
> is more readable (data == channel).

Ok, will submit v3

> 
> >      return NULL;
> 
> Frediano

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]