[Spice-devel] [spice-gtk 4/5] usb-redir: delete usb-backend context on initialization error
Frediano Ziglio
fziglio at redhat.com
Mon Jul 15 14:28:26 UTC 2019
>
> On Mon, Jul 15, 2019 at 5:04 PM Frediano Ziglio <fziglio at redhat.com> wrote:
> >
> > >
> > > The delete in error flow was missing.
> > >
> > > Signed-off-by: Yuri Benditovich <yuri.benditovich at daynix.com>
> > > ---
> > > src/usb-device-manager.c | 1 +
> > > 1 file changed, 1 insertion(+)
> > >
> > > diff --git a/src/usb-device-manager.c b/src/usb-device-manager.c
> > > index 857d057..7105ff1 100644
> > > --- a/src/usb-device-manager.c
> > > +++ b/src/usb-device-manager.c
> > > @@ -259,6 +259,7 @@ static gboolean
> > > spice_usb_device_manager_initable_init(GInitable *initable,
> > > if (!spice_usb_backend_register_hotplug(priv->context, self,
> > > spice_usb_device_manager_hotplug_cb,
> > > err)) {
> > > + spice_usb_backend_delete(priv->context);
> >
> > Should not have a following "priv->context = NULL" ?
>
> This is a constructor; if it fails the destructor is not called.
> But no problem to add this for beauty.
>
No, this is the Initiable::init. If this returns FALSE the object destruction
(so spice_usb_device_manager_finalize for instance) will be executed.
Currently spice_usb_device_manager_finalize is calling spice_usb_backend_delete
also so in theory this call should not be necessary (not tested).
> >
> > > return FALSE;
> > > }
> > > #ifndef G_OS_WIN32
> >
Frediano
More information about the Spice-devel
mailing list