> > From: Victor Toso <me@xxxxxxxxxxxxxx> > > Although spice_channel_connect() works in idle, if it returns false > it'll not emit any signal further and we would be counting a > 'connected' channel that wouldn't be emitting anything. > > As other callbacks take this in consideration, we should only > increment the counter if we reached spice-channel::connect_delayed() > callback. > > Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx> > --- > src/channel-main.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/src/channel-main.c b/src/channel-main.c > index a1e5498..3d1b1b5 100644 > --- a/src/channel-main.c > +++ b/src/channel-main.c > @@ -2174,8 +2174,9 @@ migrate_channel_connect(spice_migrate *mig, int type, > int id) > SPICE_DEBUG("migrate_channel_connect %d:%d", type, id); > > SpiceChannel *newc = spice_channel_new(mig->session, type, id); > - spice_channel_connect(newc); > - mig->nchannels++; > + if (newc != NULL && spice_channel_connect(newc)) { > + mig->nchannels++; > + } > } > > /* coroutine context */ Acked-by: Frediano Ziglio <fziglio@xxxxxxxxxx> It makes sense but if spice_channel_connect for any reason fails the channel will go to unconnected state and we will "forget" the pointer so basically looks like a leak. At least I would expect that if I attempt to disconnect it the object is freed. Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel