[Spice-devel] [spice-gtk Win32 v5 05/22] spice_usb_device_manager_add_dev: check auto_ok before freeing libusb device list
Uri Lublin
uril at redhat.com
Mon Jul 9 06:07:37 PDT 2012
On 07/09/2012 03:54 PM, Marc-André Lureau wrote:
> It would have been more sensible to move libusb_free_device_list() to
> the end of the function, perhaps (goto cleanup or something).
Although very unlikely, that may cause a race between freeing the list and
opening the specific device after driver installation.
> ack anyway
Thanks,
Uri.
>
> On Mon, Jul 9, 2012 at 2:14 PM, Uri Lublin<uril at redhat.com> wrote:
>> In preparation for a different SpiceUsbDevice.
>> ---
>> gtk/usb-device-manager.c | 15 +++++++++------
>> 1 files changed, 9 insertions(+), 6 deletions(-)
>>
>> diff --git a/gtk/usb-device-manager.c b/gtk/usb-device-manager.c
>> index c50a7da..a81db57 100644
>> --- a/gtk/usb-device-manager.c
>> +++ b/gtk/usb-device-manager.c
>> @@ -543,6 +543,7 @@ static void spice_usb_device_manager_add_dev(SpiceUsbDeviceManager *self,
>> libusb_device *device = NULL, **dev_list = NULL;
>> const gchar *devtype, *devclass;
>> int i, bus, address;
>> + gboolean auto_ok = FALSE;
>>
>> devtype = g_udev_device_get_property(udev, "DEVTYPE");
>> /* Check if this is a usb device (and not an interface) */
>> @@ -572,6 +573,13 @@ static void spice_usb_device_manager_add_dev(SpiceUsbDeviceManager *self,
>> }
>> }
>>
>> + if (device&& priv->auto_connect) {
>> + auto_ok = usbredirhost_check_device_filter(
>> + priv->auto_conn_filter_rules,
>> + priv->auto_conn_filter_rules_count,
>> + device, 0) == 0;
>> + }
>> +
>> if (!priv->coldplug_list)
>> libusb_free_device_list(dev_list, 1);
>>
>> @@ -584,16 +592,11 @@ static void spice_usb_device_manager_add_dev(SpiceUsbDeviceManager *self,
>> g_ptr_array_add(priv->devices, device);
>>
>> if (priv->auto_connect) {
>> - gboolean can_redirect, auto_ok;
>> + gboolean can_redirect;
>>
>> can_redirect = spice_usb_device_manager_can_redirect_device(
>> self, (SpiceUsbDevice *)device, NULL);
>>
>> - auto_ok = usbredirhost_check_device_filter(
>> - priv->auto_conn_filter_rules,
>> - priv->auto_conn_filter_rules_count,
>> - device, 0) == 0;
>> -
>> if (can_redirect&& auto_ok)
>> spice_usb_device_manager_connect_device_async(self,
>> (SpiceUsbDevice *)device, NULL,
>> --
>> 1.7.1
>>
>> _______________________________________________
>> Spice-devel mailing list
>> Spice-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>
>
More information about the Spice-devel
mailing list