From 3e23fff91ea15421a404fb8fc0cb5d86bfbeaa95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=87=A1?= <wangfan1987.good@163.com> Date: Tue, 7 Aug 2018 10:06:18 +0200 Subject: [PATCH] usb-device-manager: Set UsbDk backend on libusb 1.0.22 In libusb 1.0.21, UsbDk is enabled at compile time with --enable-usbdk option. In libusb 1.0.22, the backend is selected at runtime. This patch avoids a crash when spice client is compiled against libusb 1.0.22 and UsbDk is not installed. * Enabling dynamic backend selection in Windows https://github.com/libusb/libusb/commit/54884e84d024e761450287ab56aca https://gitlab.freedesktop.org/spice/spice-gtk/issues/74 Signed-off-by: Victor Toso <victortoso@redhat.com> Acked-by: Christophe Fergeau <cfergeau@redhat.com> --- src/usb-device-manager.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/usb-device-manager.c b/src/usb-device-manager.c index 55bf67e1..50fb4919 100644 --- a/src/usb-device-manager.c +++ b/src/usb-device-manager.c @@ -303,6 +303,12 @@ static gboolean spice_usb_device_manager_initable_init(GInitable *initable, return FALSE; } +#ifdef G_OS_WIN32 +#if LIBUSB_API_VERSION >= 0x01000106 + libusb_set_option(priv->context, LIBUSB_OPTION_USE_USBDK); +#endif +#endif + /* Start listening for usb devices plug / unplug */ #ifdef USE_GUDEV priv->udev = g_udev_client_new(subsystems); -- GitLab