Hello, any problem with this one? I am not sure about the GError memory management. Unfortunately the Debian provided version of spicy crashes on exit so I don't get clear valgrind output regarding leaks. The only minor issue is that if you in fact have a libusb issue but have support for the policykit compiled-in you get teh policykit error displayed in dialog and the libusb error only on stderr. Thanks Michal Excerpts from Michal Suchanek's message of Mon Jun 29 15:46:56 +0200 2015: > When calling ACL helper fails also try to open the device node directly. > > Otherwise user-accessible device nodes are rejected when policykit > support is compiled in and policy is not set up when in fact the device > could be accessed. > > Signed-off-by: Michal Suchanek <hramrach@xxxxxxxxx> > --- > src/channel-usbredir.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/src/channel-usbredir.c b/src/channel-usbredir.c > index 292b82f..b5745b6 100644 > --- a/src/channel-usbredir.c > +++ b/src/channel-usbredir.c > @@ -276,21 +276,24 @@ static void spice_usbredir_channel_open_acl_cb( > SpiceUsbredirChannel *channel = SPICE_USBREDIR_CHANNEL(user_data); > SpiceUsbredirChannelPrivate *priv = channel->priv; > GError *err = NULL; > + GError *acl_err = NULL; > > g_return_if_fail(acl_helper == priv->acl_helper); > g_return_if_fail(priv->state == STATE_WAITING_FOR_ACL_HELPER || > priv->state == STATE_DISCONNECTING); > > - spice_usb_acl_helper_open_acl_finish(acl_helper, acl_res, &err); > - if (!err && priv->state == STATE_DISCONNECTING) { > + spice_usb_acl_helper_open_acl_finish(acl_helper, acl_res, &acl_err); > + if (!acl_err && priv->state == STATE_DISCONNECTING) { > err = g_error_new_literal(G_IO_ERROR, G_IO_ERROR_CANCELLED, > "USB redirection channel connect cancelled"); > } > - if (!err) { > - spice_usbredir_channel_open_device(channel, &err); > - } > + > + spice_usbredir_channel_open_device(channel, &err); > if (err) { > - g_simple_async_result_take_error(priv->result, err); > + if (acl_err) > + g_simple_async_result_take_error(priv->result, acl_err); > + else > + g_simple_async_result_take_error(priv->result, err); > libusb_unref_device(priv->device); > priv->device = NULL; > g_boxed_free(spice_usb_device_get_type(), priv->spice_device); _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel